'Programming/openGL'에 해당되는 글 84건

  1. 2011.09.24 webGL
  2. 2011.09.02 depth buffer
  3. 2011.06.09 glGenLists
  4. 2011.05.13 glutIdleFunc
  5. 2011.05.06 openGL 좌표계
  6. 2011.05.03 openGL - DoF 2
  7. 2011.05.01 직교좌표계와 원근좌표계 전환하기
  8. 2011.04.24 glutReshapeWindow() 는 크기 변화가 없으면 안그려 OTL 2
  9. 2011.04.05 glViewport
  10. 2011.03.30 glFrustum - 절두체 6
Programming/openGL2011. 9. 24. 15:53
openGL ES2.0 기반의 웹용 GL 이다.

[링크 : http://www.khronos.org/webgl/]
[링크 : http://www.khronos.org/webgl/wiki/Main_Page] << 여기에 데모용 있음
[링크 : http://ko.wikipedia.org/wiki/WebGL

---
Intel GMA915를 내장하는 XNOTE LW20 express + 크롬 에서 실행하니 어라 안되네?

지원되는 운영체제

Windows Vista 및 Windows 7(권장)
Mac OS 10.5 및 Mac OS 10.6(권장)
Linux

 
그래픽 카드

다음 그래픽 카드가 있는 경우에는 WebGL이 지원되지 않으며 기본적으로 사용중지됩니다.

모든 운영체제
    NVIDIA GeForce FX Go5200
Windows
    Intel GMA 945
Mac
    ATI Radeon HD2400
    ATI Radeon 2600 시리즈
    ATI Radeon X1900
    GeForce 7300 GT
Linux
    AMD/ATI
    Intel: 7.9 이전의 Mesa 드라이버
 
[링크 :http://www.google.com/support/chrome/bin/answer.py?answer=1220892
 

glxinfo를 쳐보니
OpenGL renderer string: Mesa DRI Intel(R) 915GM GEM 20091221 2009Q4 x86/MMX/SSE2
OpenGL version string: 1.4 Mesa 7.7.1
음.. 메사가 7.7.1 버전이라 그런가..


----
2011.09.26 추가
AMD 4200+x2 / WinXP SP3 / Nvidia Geforce8800GT 512MB / 266.58  / 크롬


아래 샘플을 돌리니 대략 60% CPU 점유율을 차지하고,
다른탭을 누르면 cpu사용률이 0%로 되는것을 봐서는 활성화 되었을때만 렌더링을 하는 것으로 보인다.



[링크 : http://www.khronos.org/webgl/wiki/Demo_Repository]
    [링크 : https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/webkit/Earth.html

'Programming > openGL' 카테고리의 다른 글

GLUT keyboard callback function  (0) 2011.09.27
openGL로 싸인곡선 그리기(sin wave)  (5) 2011.09.25
depth buffer  (0) 2011.09.02
glGenLists  (0) 2011.06.09
glutIdleFunc  (0) 2011.05.13
Posted by 구차니
Programming/openGL2011. 9. 2. 07:53
glVertex() 함수들을 보는데 x,y,z,w 라는 변수들이 있길래
w는 어떤값인지 찾아보니 depth buffer를 위한 값이라고 한다.
일반적으로 깊이값은 Z로 하지 않나? 싶긴한데 흐음..
clipping과 관련된것 같기도 하고.. 모호하네..

[링크 : http://msdn.microsoft.com/en-us/library/dd374160(v=vs.85).aspx]
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glVertex.xml]
[링크 : http://msdn.microsoft.com/en-us/library/bb976071.aspx]

[링크 : http://en.wikipedia.org/wiki/Z-buffering]
[링크 : http://www.opengl.org/resources/faq/technical/depthbuffer.htm]

'Programming > openGL' 카테고리의 다른 글

openGL로 싸인곡선 그리기(sin wave)  (5) 2011.09.25
webGL  (0) 2011.09.24
glGenLists  (0) 2011.06.09
glutIdleFunc  (0) 2011.05.13
openGL 좌표계  (0) 2011.05.06
Posted by 구차니
Programming/openGL2011. 6. 9. 20:55
openGL에서 List는 일련의 명령어들을 저장해 놓는 기능을 한다(고 한다)

glGenLists() 를 통해 배열을 만들고
glNewList() 와 glEndList() 사이의 gl 명령어들을 저장한다.
그리고 리스트는 glCallList()를 통해 사용한다.
New가 있으면 Delete가 있듯, glDeleteLists()로 생성한 List를 삭제하면 된다.

이러한 list에는 상태관련 명령어는 들어가지 못한다.

Remember that you cannot place any client state commands in the display list, therefore,glEnableClientState()glVertexPointer() and glNormalPointer() should not be included in the display list.

[링크 : http://www.songho.ca/opengl/gl_displaylist.html] 
 

Some OpenGL commands cannot be stored in a display list; for example: 
 
glColorPointer() 
glDeleteLists() 
glDisableClientState() 
glFlush() 
glGenLists() 
glGet*() 
glNormalPointer() 
glPixelStore() 
glReadPixels() 
 
-   Commands that set client state and commands that retrieve state values are executed immediately 
-   Calling glNewList within a glNewList / glEndList pair will generate an error
 
[링크 : http://www.movesinstitute.org/~mcdowell/mv4202/notes/lect9.pdf] 

[링크 : http://ivis.cwnu.ac.kr/wiki/index.php/MultipleViewport]

[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glCallList.xml]
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glCallLists.xml]
  [링크 : http://www.opengl.org/sdk/docs/man/xhtml/glGenLists.xml] glGenLists
    [링크 : http://www.opengl.org/sdk/docs/man/xhtml/glNewList.xml] glNewList
    [링크 : http://www.opengl.org/sdk/docs/man/xhtml/glEndList.xml] glEndList
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glDeleteLists.xml]

'Programming > openGL' 카테고리의 다른 글

webGL  (0) 2011.09.24
depth buffer  (0) 2011.09.02
glutIdleFunc  (0) 2011.05.13
openGL 좌표계  (0) 2011.05.06
openGL - DoF  (2) 2011.05.03
Posted by 구차니
Programming/openGL2011. 5. 13. 20:41
openGL 로고 예제를 보다보니 idle 이라는 함수가 있는데
별다른 건 없는데 애니메이션이 되길래 찾아봤더니

말그대로 idle 일때 호출이 된다는 녀석
어떻게 보면 idle 간의 시간을 역산해서 FPS를 뿌려주면 될듯?

[링크 : http://www.opengl.org/resources/libraries/glut/spec3/node63.html]


 

'Programming > openGL' 카테고리의 다른 글

depth buffer  (0) 2011.09.02
glGenLists  (0) 2011.06.09
openGL 좌표계  (0) 2011.05.06
openGL - DoF  (2) 2011.05.03
직교좌표계와 원근좌표계 전환하기  (0) 2011.05.01
Posted by 구차니
Programming/openGL2011. 5. 6. 00:04

'Programming > openGL' 카테고리의 다른 글

glGenLists  (0) 2011.06.09
glutIdleFunc  (0) 2011.05.13
openGL - DoF  (2) 2011.05.03
직교좌표계와 원근좌표계 전환하기  (0) 2011.05.01
glutReshapeWindow() 는 크기 변화가 없으면 안그려 OTL  (2) 2011.04.24
Posted by 구차니
Programming/openGL2011. 5. 3. 07:32
DoF는 Depth of Field로 통상 심도라고도 표현한다.(아니면 말구 -_-)
화면에 있어 어느정도 까지 촛점이 제대로 잡히는지 에 대한 수치로

생각치도 못하게 motion blur 쪽과 유사한 방법으로 openGL에서 DoF를 표현한다.
어짜피 특정 거리 이상은 촛점을 흐리게 해주면 되니,
움직이면서 흐리게 되나 거리로 흐리게 되나 결론은 "번지게" 하는 것이므로
어쩌면 당연히 동일한 함수를 이용하는 걸지도 모르겠다.

[링크 : http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node87.html]
[링크 : http://www.opengl.org/resources/code/samples/glut_examples/advanced/advanced.html]
    [링크 : http://www.opengl.org/resources/code/samples/glut_examples/advanced/field.c]
[링크 : http://glprogramming.com/red/chapter10.html]
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glAccum.xml]


  



'Programming > openGL' 카테고리의 다른 글

glutIdleFunc  (0) 2011.05.13
openGL 좌표계  (0) 2011.05.06
직교좌표계와 원근좌표계 전환하기  (0) 2011.05.01
glutReshapeWindow() 는 크기 변화가 없으면 안그려 OTL  (2) 2011.04.24
glViewport  (0) 2011.04.05
Posted by 구차니
Programming/openGL2011. 5. 1. 11:40
Orthogonal 과 Perspective 를 오가는 방법은 blender나 3dmax에서는 참쉬운데..
openGL 에서는 어떻게 구현하나 검색을 하다보니
glOrthoglFrustm을 바꾸어 주기만 하면 간단하게 해결된다는 글을 발견!
실험을 해보았지만 depth의 문제인지 마음처럼 효과가 나타나지는 않는듯.. ㅠ.ㅠ

[링크 : http://stackoverflow.com/questions/5765309/converting-orthogonal-camera-to-perspective-opengl]
[링크 : http://www.songho.ca/opengl/gl_transform.html]

void glOrtho( GLdouble   left,  GLdouble   right,  GLdouble   bottom,  GLdouble   top,
GLdouble   nearVal,  GLdouble   farVal);
void glFrustum( GLdouble   left,  GLdouble   right,  GLdouble   bottom,  GLdouble   top,
  GLdouble   nearVal,  GLdouble   farVal); 

[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml 

'Programming > openGL' 카테고리의 다른 글

openGL 좌표계  (0) 2011.05.06
openGL - DoF  (2) 2011.05.03
glutReshapeWindow() 는 크기 변화가 없으면 안그려 OTL  (2) 2011.04.24
glViewport  (0) 2011.04.05
glFrustum - 절두체  (6) 2011.03.30
Posted by 구차니
Programming/openGL2011. 4. 24. 23:32
기본적인 예제에서 reshape 쪽에 glOrtho 나 gluPerspective 를 사용하도록 코드가 구현되어 있다.
이를 변경해서, o 와 p 키를 누르면 변경되게 했는데
이래저래 reshape쪽 루틴을 타지 않길래 실험을 해보았더니
reshape는 말그대로 window의 크기 변동에 따라 다시 그리도록 하는 녀석이기 때문에
"윈도우 크기의 변화가 없으면 glutReshapeFunc 에 등록된 루틴을 태우지 않는다.

이래저래 키보드 입력해서 처리를 해야 하나..
아니면 크기를 바꾸는 꽁수를 써야하나?

Usage
void glutReshapeWindow(int width, int height);

width  New width of window in pixels.
height New height of window in pixels.

Description

glutReshapeWindow requests a change in the size of the current window. The width and height parameters are size extents in pixels. The width and height must be positive values.

The requests by glutReshapeWindow are not processed immediately. The request is executed after returning to the main event loop. This allows multiple glutReshapeWindow, glutPositionWindow, and glutFullScreen requests to the same window to be coalesced.

In the case of top-level windows, a glutReshapeWindow call is considered only a request for sizing the window. The window system is free to apply its own policies to top-level window sizing. The intent is that top-level windows should be reshaped according glutReshapeWindow's parameters. Whether a reshape actually takes effect and, if so, the reshaped dimensions are reported to the program by a reshape callback.

glutReshapeWindow disables the full screen status of a window if previously enabled. 

[링크 : http://www.opengl.org/resources/libraries/glut/spec3/node23.html]

'Programming > openGL' 카테고리의 다른 글

openGL - DoF  (2) 2011.05.03
직교좌표계와 원근좌표계 전환하기  (0) 2011.05.01
glViewport  (0) 2011.04.05
glFrustum - 절두체  (6) 2011.03.30
openGL tutorial - 태양과 지구 돌리기  (0) 2011.03.29
Posted by 구차니
Programming/openGL2011. 4. 5. 21:08
솔찍히 어떻게 변화하는지 이해를 못한 함수중에 하나..

원본 이미지


glViewport를 사용하지 않고 창의 크기를 변화시켰을 경우



glViewport를 사용하고 창의 크기를 변화시켰을 경우



증상은 일단 접어두고, 
glViewport는 말그대로 뷰포트의 좌표를 설정한다.
glutReshapeFunc는 윈도우의 크기가 변화될 때 불려지는
callback 함수를 등록하는 함수로 변화된 창의 넓이와 높이가 전해진다.

기본적으로 glViewport의 x,y는 좌측 하단의 좌표를 의미하며 (0,0)을 일반적으로 사용한다.
즉 윈도우 좌표계를 설정하는 것으로 1사분면의 좌표를 따른다.

void glutReshapeFunc(void (*func)(int width, int height));
void glViewport(GLint x, GLint y, GLsize iwidth, GLsize iheight);

[링크 : http://www.opengl.org/documentation/specs/glut/spec3/node48.html]
[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glViewport.xml]
 


---
2011.10.06 추가
glutReshapeFunc() 의 기본 callback 함수에는
glViewport(0, 0, (GLsizei) w, (GLsizei) h); 가 정의 되어 있다고 한다.

그리고 glViewport() 함수는 1사분면 처럼 좌측하단이 (0.0) 이다.
X, Y Specify the lower left corner of the viewport rectangle in pixels. The default is (0,0).

그리고  viewport는 화면을 분할하는 데에도 사용할수 있다.
[링크 : 
http://ivis.cwnu.ac.kr/wiki/index.php/MultipleViewport_Ex2] 
Posted by 구차니
Programming/openGL2011. 3. 30. 07:35
머리를 자른건가 -_-!
절두체(frustum)라는 것은 "평행한 두 평면"으로 잘려진 도형을 의미한다.
예를 들어 직사각형처럼 긴 육면체를 두개의 평면으로 적당하게 잘라서 정육면체로 만들수 있고
원추를 잘라 마름모형 6면체로도 만들수 있다.




간단하게 원근감을 나타내기 위한 방법으로서, 투형되는 공간의 부피를 설정하는 함수이다.
void glFrustum(GLdouble left, GLdouble right,
                      GLdouble bottom, GLdouble top,
                      GLdouble nearVal, GLdouble farVal);

glFrustum describes a perspective matrix that produces a perspective projection.

[링크 : http://www.opengl.org/sdk/docs/man/xhtml/glFrustum.xml] 

그런데... 어떻게 윗면과 아랫면의 크기를 정하지?
무조건 중심점에서 해당 좌표까지의 크기에서 near / far로 자르는걸려나? 
Posted by 구차니