webgl 2d img draw
'WebGL' 카테고리의 다른 글
webGL - 배울 수 있는곳 - learning webgl (0) | 2016.08.18 |
---|---|
OpenGL/webGL - 셰이더(쉐이더)? (0) | 2016.08.18 |
OpenGL/webGL - 성능향상 팁 (0) | 2016.08.18 |
webGL - 배울 수 있는곳 - learning webgl (0) | 2016.08.18 |
---|---|
OpenGL/webGL - 셰이더(쉐이더)? (0) | 2016.08.18 |
OpenGL/webGL - 성능향상 팁 (0) | 2016.08.18 |
과거에 게임의 화면 재생속도논쟁이 있었다.
"fps"로 표시되는, 1초에 몇장의 화면을 그리는것이 좋은가?
1초에 얼마나 많은 화면을 그려야 좋은가?
모니터가 그릴 수 있는 화면이 30~60장/초 인데도, 게임유저들은 100fps가 넘는 고사양을 선호했던 논쟁이었다.(아직도 진행형)
"모르면 무식하다."는 말이 여기에도 적용되는듯.
정리하면, 모니터 화면 재생속도이상 더 빨리, 많이 그려봐야, 손해다.
이는 W3C(World Wide Web 컨소시엄)에서 requestAnimationFrame 기능(함수) 하나로 종결되었다.
저는 밑의 설정과 프로그램 작업을 하지않고 무작정 오버워치를 했을 때최저옵에서도 30~40프레임이 나올정도였습니다.하지만 밑의 작업을 통해 65~70프레임 유지 중입니다. |
ㅎㅎ 모르는것은 죄가 아니나, 알려고 하지않는것은 잘못이다.
다시 말하지만, 모니터 재생속도를 넘는 오버 프레임출력은 무용지물이며, 더 안좋은 결과를 초래한다.
보통 모니터들이 30~60fps이므로, 그 이상은 필요가 없다.
nehe opengl 강좌처럼 되어 있습니다.
http://learningwebgl.com/blog/
Lesson 0: Getting Started shows you how to download, install and configure a web browser that can show WebGL content, and gives links to a set of pages that show what it can do. | |
Lesson 1: A Triangle and a Square gives you an overview of how WebGL works, with enough code to simply draw a static triangle and a square on the screen. | |
Lesson 2: Adding Colour builds on lesson 1, and adds colour to the triangle and the square. | |
Lesson 3: A Bit of Movement builds on lesson 2, making the triangle and the square spin around. | |
Lesson 4: Some Real 3D Objects builds on lesson 3, bringing us into the third dimension fully by replacing the triangle with a pyramid and the square with a cube. | |
Lesson 5: Introducing Textures shows how you can use an image file to “skin” your 3D objects, giving you a quick and easy way to make them look more interesting. | |
Lesson 6: Keyboard Input and Texture Filters builds on lesson 6, showing you some more advanced ways to use textures, and also gives some pointers on how to read the keyboard in a way appropriate for 3D scenes and for games. | |
Lesson 7: Basic Directional and Ambient Lighting introduces the two simplest forms of lighting. | |
Lesson 8: The Depth Buffer, Transparency and Blending shows one way in which you can simulate transparent materials in WebGL, teaching you a little more theory along the way. | |
Lesson 9: Improving the Code Structure With Lots of Moving Objects uses simple object-oriented techniques to give us number of independently-animated objects moving around the screen at the same time. | |
Lesson 10: Loading a World, and the Most Basic Kind of Camerauses techniques from the previous lesson, along with a new trick to simulate a camera that moves around the scene, and demonstrates a kind of nano-Doom | |
Lesson 11: Spheres, Rotation Matrices, and Mouse Events shows how to draw spheres, and how to write code so that the user can spin them using the mouse. | |
Lesson 12: point lighting shows how implement lighting that seems to come from points within your 3D scene. | |
WebGL Lesson 13: per-fragment lighting and multiple programsdescribes a way of doing more realistic lighting at the cost of more processing time for the graphics card. | |
WebGL Lesson 14: specular highlights and loading a JSON modelmakes the lighting even better by adding specular highlights, and also shows how to use load up models of 3D objects from JSON files. | |
WebGL Lesson 15: specular maps shows how to use specular maps, which give your scenes greater realism by making it easy to specify how reflective an object is at every point on its surface, just as normal textures allow you to specify its detailed colour. | |
WebGL Lesson 16: render-to-texture shows how to render a WebGL scene into a texture that can then be used in another scene — a neat trick in itself, and a useful foundation for other techiques. |
webgl 2d img draw (0) | 2017.03.01 |
---|---|
OpenGL/webGL - 셰이더(쉐이더)? (0) | 2016.08.18 |
OpenGL/webGL - 성능향상 팁 (0) | 2016.08.18 |
점, 선등을 이동,변환, 회전등의 연산을 사용자가 수정할 수 있게 하는 기능.
예) 버텍스 쉐이더, 픽셀쉐이더
이전에는 "파이프라인"이라고 해서, 3D출력 순서가 고정되어 있었습니다.
쉐이더는 이 기능들의 사이 사이에 들어가서, 사용자가 원하는 방식으로 수정할 수 있게 해주는 방법이라고 볼 수 있습니다.
참고
http://alleysark.tistory.com/264
webgl 2d img draw (0) | 2017.03.01 |
---|---|
webGL - 배울 수 있는곳 - learning webgl (0) | 2016.08.18 |
OpenGL/webGL - 성능향상 팁 (0) | 2016.08.18 |
OpenGL/webGL - 성능향상 팁
- CPU/GUP간 동기화는 매우느리다.
readPixels, finish, getError 등의 불필요한 함수호출은 자재한다.
필요한 정보는 변수에 저장해라.
- 함수 호출 1번으로 많은 내용을 그려라.
drawArrays, drawElements 등의 함수를 한번만 호출하여, 많은 물체를 그려라.
함수를 여러번 호출하면 느려진다.
- texture 이미지는 1장에 모두 그려서, 필요한 부분만 골라서 그리도록 한다.
texture 이미지를 교체할 수록 느려진다.
- 이미지는 가능하면 mipmapping 을 사용해라.
- 간단한 shaders는 빠르다. if문 같은 비교문은 제거해라.
나눗셈, sin,cos, log등의 수학 함수 호출등은 가능하면 피해라. 변수에 미리 값을 계산하여 저장.
- fragment shader(느림)보다는, vertex shader(빠름)에서 가능한 많은 작업을 해라.
- vertex attrib 0 array를 enable로 설정하라.
webgl 2d img draw (0) | 2017.03.01 |
---|---|
webGL - 배울 수 있는곳 - learning webgl (0) | 2016.08.18 |
OpenGL/webGL - 셰이더(쉐이더)? (0) | 2016.08.18 |
이미 실현되고 있는 webGL
https://www.buildwithchrome.com/
구글지도위에 레고를 쌓을 수 있는 홈페이지
구글 개발자들은 역시, 대단합니다.
그런데, 등록은 되어도, 수정 및 삭제는 안된다고 하네요.(언제 고쳐질지..)
(내가 만든것도 수정 못하게 하네...)
"내가 만든건, 다 구글님꺼~"
어쨌든, 스마트폰이 거의 다 보급된 현시점에서, webGL은 어디까지 갈 수 있을지 궁금하다.
핸드폰에서 발열/배터리소모에 막혀, 널리 보급되지 못할지도 모른다.
또한, 3D개발은 시간과 노력이 더 많이 필요하다.
일반 html홈페이지 만드는것도 힘든데, 3D로 만들려면, 수지타산이 맞을지?
장점
- 3D
- 웹브라우져 대부분에서 실행됨
- 모바일폰에서도 동작가능
단점
- 3D라서 발열 및 배터리 소모가 심함
- 개발하기는 쉽지 않음
- TCP/IP 소켓 통신 불가. GET/POST방식으로 해야함.
- 생각보다 느리다.(자바스크립트 기반이라서 그런지)
위 내용은 웹상에서 3D를 구현하는 내용이고, 아래는 웹브라우져에서 OpenGL을 지원하는 기능입니다.
비교적 최신 웹브라우져에, 고사양입니다.
<canvas>
elements.Support for WebGL is present in Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+ and Internet Explorer 11+; however, the user's device must also have hardware that supports these features.
레고 비행기 확장 공사2 (0) | 2016.09.25 |
---|---|
LEGO CITY 60051 [레고] 레고 시티 고속 열차 (High-speed Passenger Train) 기차 (0) | 2016.09.16 |
레고 비행기 확장 공사 (0) | 2016.08.09 |
레고블럭 치우는 방법 (0) | 2016.08.02 |
레고 헬리콥터 (0) | 2016.06.30 |