日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

纹理贴图的干扰问题

發布時間:2024/4/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 纹理贴图的干扰问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
源代碼下載 前幾天對旋轉閃屏這個問題很頭疼,網上都是些Win32的demo,我又分不清它移植到MFC上到底哪里出毛病了,今天總算找到了一篇有價值的文章,分析了它的代碼,發現自己以前寫的那個MFC里的框架基本上是對的,旋轉也是采用定時器的方式來實現的,只是在設置像素格式的時候犯了一個小錯誤,才導致了閃屏的現象,修改后就沒有這個毛病了。
但今天又發現了一個奇怪的現象:如果要畫兩個物體,第一個不用紋理貼圖,第2個要紋理貼圖,我就發現第一個的顏色會干擾到紋理貼圖的,結果兩個物體的顏色都變得很怪了,怎么能讓畫完第一個物體后,它的顏色不對第2個產生影響呢?

我想了這么一個辦法:畫完第一個物體后就:glColor3f(1.0f,1.0f,1.0f);可這樣第2個是沒有受到干擾了,但第一個又被干擾了。。。

接著向susu請教了下,她說可以在繪制每個物體前應該把當前狀態先保存到堆棧中,再等繪制完后取出原來的狀態,這樣就可以避免相互干擾了。我試了下,可效果發現和上面一樣,第2個是沒有受到干擾了,但第一個又被干擾了。。。 int COpenGLDemoView::DrawGLScene() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? {// Here's Where We Do All The Drawing glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); ? ?// Clear Screen And Depth Buffer glPushAttrib(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_CURRENT_BIT); glPushMatrix(); glShadeModel(GL_SMOOTH); glLoadIdentity(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Reset The Current Modelview Matrix glTranslatef(-1.5f,0.0f,-6.0f);//物體左移1.5,向內移6,相當于移動鏡頭一樣,讓物體進入鏡頭中 glRotatef(rTri,0.0f,1.0f,0.0f); glBegin(GL_TRIANGLES); ? ? ? ? ? ? ? ? ? ? ? ? ? ?// 繪制三角形 glColor3f(1.0f,0.0f,0.0f); ? ? ? ? ? ?// 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); ? ? ? ? ? ?// 三角形的上頂點 (前側面) glColor3f(0.0f,1.0f,0.0f); ? ? ? ? ? ?// 綠色 glVertex3f(-1.0f,-1.0f, 1.0f); ? ? ? ? ? ?// 三角形的左下頂點 (前側面) glColor3f(0.0f,0.0f,1.0f); ? ? ? ? ? ?// 藍色 glVertex3f( 1.0f,-1.0f, 1.0f); ? ? ? ? ? ?// 三角形的右下頂點 (前側面) glColor3f(1.0f,0.0f,0.0f); ? ? ? ? ? ?// 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); ? ? ? ? ? ?// 三角形的上頂點 (右側面) glColor3f(0.0f,0.0f,1.0f); ? ? ? ? ? ?// 藍色 glVertex3f( 1.0f,-1.0f, 1.0f); ? ? ? ? ? ?// 三角形的左下頂點 (右側面) glColor3f(0.0f,1.0f,0.0f); ? ? ? ? ? ?// 綠色 glVertex3f( 1.0f,-1.0f, -1.0f); ? ? ? ? ? ?// 三角形的右下頂點 (右側面) glColor3f(1.0f,0.0f,0.0f); ? ? ? ? ? ?// 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); ? ? ? ? ? ?// 三角形的上頂點 (后側面) glColor3f(0.0f,1.0f,0.0f); ? ? ? ? ? ?// 綠色 glVertex3f( 1.0f,-1.0f, -1.0f); ? ? ? ? ? ?// 三角形的左下頂點 (后側面) glColor3f(0.0f,0.0f,1.0f); ? ? ? ? ? ?// 藍色 glVertex3f(-1.0f,-1.0f, -1.0f); ? ? ? ? ? ?// 三角形的右下頂點 (后側面) glColor3f(1.0f,0.0f,0.0f); ? ? ? ? ? ?// 紅色 glVertex3f( 0.0f, 1.0f, 0.0f); ? ? ? ? ? ?// 三角形的上頂點 (左側面) glColor3f(0.0f,0.0f,1.0f); ? ? ? ? ? ?// 藍色 glVertex3f(-1.0f,-1.0f,-1.0f); ? ? ? ? ? ?// 三角形的左下頂點 (左側面) glColor3f(0.0f,1.0f,0.0f); ? ? ? ? ? ?// 綠色 glVertex3f(-1.0f,-1.0f, 1.0f); ? ? ? ? ? ?// 三角形的右下頂點 (左側面 glEnd(); ? ? ? ? ? ? ? ? ? ?&n

本文轉自Phinecos(洞庭散人)博客園博客,原文鏈接:http://www.cnblogs.com/phinecos/archive/2007/08/09/849277.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的纹理贴图的干扰问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。