[태그:] opengl
출처: https://glbook.gamedev.net/GLBOOK/glbook.gamedev.net/moglgp/advclip.html 솔리드 모델의 경우.. Clipping 후 Stencil 버퍼를 사용하여 Clip Edge를 그리는 방법.. AdvancedClipPlanes.7z Clip Eedg 를 그리기 위해서 추가적으로 2pass 랜더링이 필요하므로.. 어느정도의 성능 감수는 필요..
출처: https://glbook.gamedev.net/GLBOOK/glbook.gamedev.net/moglgp/advclip.html 솔리드 모델의 경우.. Clipping 후 Stencil 버퍼를 사용하여 Clip Edge를 그리는 방법.. AdvancedClipPlanes.7z Clip Eedg 를 그리기 위해서 추가적으로 2pass 랜더링이 필요하므로.. 어느정도의 성능 감수는 필요..
opengl 에서 gpu로의 데이타 전송을 최소화 하는것이 성능상 이점이 있음. 특히 표면 노말의 경우는 x, y, z 3개의 float을 넘겨주는데.. 총 12바이트를 소요함. 이를 하나의 signed int (10.10.10.2) 로 표현하면 4바이트로 줄어듬. 비록 약간의 데이타 손실은 있지만 opengl에서 normal 로 표면을 표한할때는 차이가 거의 없음. 아래와 같이 약간의 손실을 감수하면서 opengl의 성능을 올릴때 사용하면 좋을것임. […]
제목이 거창한데.. 제목을 뭐라 해야할지.. ㅠ OpenCASCADE의 edge 정보를 기반으로 wire 프레임을 보여주는 기능을 구현중인데.. 이 wire 프레임 만으로는 형상에 대한 정보를 얻기 어려울때가 있음. 아래와 같은 형상이 있을때.. wire 프레임으로 표현하면 이런데.. cone 형상이나 cylinder 형상 같은건 wire 프레임 보기 모드에서는 쪼메 형상 판단이 안됨.. 그래서 non plane surface의 가운데를 가로지는 wire를 추가적으로 보여주도록 […]
OpenCASCADE는 뷰어를 따로 제공해 주고 있지만 캐드 커널이 바뀔경우를 대비해 테셀레이션 기능만 쓰고 OpenGL에 직접 그려서 구현중임. 아래는 RC카중 가성비로 짱인 중국제 Buggy 모델의 서스편션 부분에 대한 step 파일이다. 일단 테셀레이션도 어느정도 트라이 과정을 거친후 코드를 작성해서 잘 표현해 주고 있다. 현재 작성 중인 프로그램은 GPU 기능을 쓰도록 되어 있어서 상당히 빠른 디스플레이를 보여주고 있다. […]
OpenGL로 우리가 표현하는 솔리드 (tetra, hexa…) 들은 triangle의 조합으로 이루어져있음. 실제는 내부가 차있는 형상은 아니란 말임. 어쨌건 보통 랜더링 할때는 내부를 볼일이 없어 문제가 없지만 섹션컷을 수행하면.. 안이 비어 보이게 되어 흉함.. 보통은 그래서 섹션컷 수행후에 특별한 방법으로 해당 면을 덮어씌워줌. 플레인 앞쪽은 짤린 부분으로 오른쪽에 짤린 부분을 채워주는 효과를 묘사해주고 있음. 출처: https://gist.github.com/jtsiomb/43b5da0515d4786a80a861369d35097c 컴파일 […]
처음 2년전에 OpenGL을 시작했을때가 생각난다. OpenGL은 배우기 어렵고 너무 많은 시간을 소비해야 한다는 글들을 보고 이게 과연 옳은 방향일까 고민을 했었다. 막상 긴 시간동안 오픈소스 엔진을 찾아보니 CAE 프로그램을 만드는데 전혀 적합하지 않다는 것을 알았다. 맞다. 저런 엔진은 게임을 만들려는 사람들에 국한된 얘기구나.. 하는 결론을 내렸다. 전혀 무지한 상태에서 그래도 자신있다는 Tcl/Tk로 GUI를 만들고 Tk […]
자작 CAE Pre 프로그램을 만드는 중인데.. OpenCASCADE 를 이용하여 STEP/IGES 파일 로딩 기능 추가를 해보았음. Geometry 편집이나 간단한 Primitive 추가 기능을 넣어야 하는데.. 먼저 Shape 구조체를 정리해야 할 것 같음.. 머리가 정리가 안된 상태라.. 어렵네..
http://www.cs.toronto.edu/~jacobson/phong-demo/ 웹으로 구현되어 있고 쉐이더 코드도 있어 아주 참고하기 좋음.
출처: https://github.com/belyakov-igor/WBOIT_tester OpenGL의 투명 기법중의 하나인 Weighted blended order-independent transparency 을 구현한 예제 코드. 참고하기 괜찮은 코드임. WBOIT_tester-master.7z
OpenGL 에서 정말 난이도가 높은것 중 하나가 와이어프레임을 그리는것이라 생각함.. 이유는 면위에 선을 그리는거 자체가 간섭이 일어나기에 선이 제대로 보이지 않고.. 면을 Offset 하지 않으면 도통 깨끗한 라인을 볼수 없다는것.. (OpenGL에서 선을 offset 하는 기능은 없음) 이것도 문제가 면을 Offset 하기 때문에 간혹 면과 다른 면의 선이 간섭이 발생하는것처럼 보이기도함.. 그래서 선을 geometry 스테이징에서 아주 […]