看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《FY4 ()》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : DEV-C++ : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : OPENGL : 問題(Question): : 自己嘗試寫了一顆骰子 : 幫立方體的每一個面 加入了黑色的點 骰子的每個面是白色 : 在沒開啟LIGHTING的情況下 骰子可以在3D中正常的顯示 : 但是在開啟後 在先不討論光源的屬性設置情況下 : 為什麼骰子上面的黑色點會和骰子的面合而一體?? : 骰子我是寫成一個.h檔.cpp檔 在用main去呼叫function : 在呼叫此function的前面 已經有設置了這個骰子的各種吸收或反射光的特性 : 還是我應該去.h檔.cpp檔的裡面 個別的去幫骰子的每個面以及每個點 : 設置他的glMaterial的特性 : 骰子上面的點 我是用黑的圓面以距離很短的方法 貼在骰子的面上 : 不知道還有沒有更好的方法來實作?? 一旦你用了lighting 原本的glColor就會失去效果(除非你又開了color material) 使用lighting 你要注意幾個東西要設定 material, normal 如果不設定的話,計算時會有問題 雖然你畫骰子之前有設定 但是畫每個點之前也要設定 而且應該是設定成不同的材質 否則會沿用你最後一次所設定的材質 就會跟骰子的面合而一體 距離很近的情況 可以修改深度比較的通過條件 原本預設是GL_LESS 改用glDepthFunc(GL_LEQUAL)設定成小於等於就通過 然後點比骰子晚畫 就不太會有問題了 再不行就要改Z值通過容忍度 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.62
FY4:謝謝 馬上來修改骰子的面與點數material 與 normal值 04/28 21:54
FY4:我骰子上的點數與骰子上面的面是用+0.001來做的 04/28 22:23
FY4:因為一開始做的時候 點數與面的 X,Y,Z都相同時 造成畫面重疊 04/28 22:24
FY4:的效果 變的好像點數融在面上 而不是貼在面上 04/28 22:25
Bencrie:不考慮貼 texture 嗎 XD 04/28 23:37
VictorTom:其實小弟我也覺得貼texture比較省事XD 不過原po可能才 04/28 23:56
VictorTom:從Vertex Processing開始, 還沒到Pixel Processing吧XD 04/28 23:56