C++ opengl 深度缓冲区
生活随笔
收集整理的這篇文章主要介紹了
C++ opengl 深度缓冲区
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GL_DEPTH_BUFFER_BIT 每一次清除之前,都要清空深度緩沖區
啟動深度測試glEnable(GL_DEPTH_TEST):離視野近的物體會擋住離視野遠的物體。
?
運行截圖如下:
源碼如下:
void Init() {glMatrixMode(GL_PROJECTION);gluPerspective(50.0f, 800.0f / 600.0f, 0.1f, 1000.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity(); }void Draw() {glClearColor(0.0f, 0.0f, 0.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_QUADS);glColor4ub(200, 50, 0, 255);glVertex3f(-0.1f, -0.1f, -0.4f);glVertex3f(0.1f, -0.1f, -0.4f);glVertex3f(0.1f, 0.1f, -0.4f);glVertex3f(-0.1f, 0.1f, -0.4f);glColor4ub(0, 50, 200, 255);glVertex3f(-0.1f, -0.1f, -0.6f);glVertex3f(0.1f, -0.1f, -0.6f);glVertex3f(0.1f, 0.1f, -0.6f);glVertex3f(-0.1f, 0.1f, -0.6f);glEnd(); }?
清空緩沖區,和啟動深度緩沖測試,程序運行截圖如下:
離視野近的物體會擋住離視野遠的物體
?
源碼如下:
void Init() {glMatrixMode(GL_PROJECTION);gluPerspective(50.0f, 800.0f / 600.0f, 0.1f, 1000.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity(); }void Draw() {glClearColor(0.0f, 0.0f, 0.0f, 1.0f);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glEnable(GL_DEPTH_TEST);glBegin(GL_QUADS);glColor4ub(200, 50, 0, 255);glVertex3f(-0.1f, -0.1f, -0.4f);glVertex3f(0.1f, -0.1f, -0.4f);glVertex3f(0.1f, 0.1f, -0.4f);glVertex3f(-0.1f, 0.1f, -0.4f);glColor4ub(0, 50, 200, 255);glVertex3f(-0.1f, -0.1f, -0.6f);glVertex3f(0.1f, -0.1f, -0.6f);glVertex3f(0.1f, 0.1f, -0.6f);glVertex3f(-0.1f, 0.1f, -0.6f);glEnd(); }?
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的C++ opengl 深度缓冲区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++工作笔记-对static_cast
- 下一篇: Qt工作笔记-如何正确使用QXmlStr