我目前正在實現反射(使用渲染到紋理方法),並且到目前爲止它的工作原理,唯一的問題是反射版本中的所有對象都被渲染出來。使用矩陣反向頂點繞組順序
我想避免改變內部OpenGL頂點繞線順序,以確保我不會干擾其他渲染操作太多。
相反,我想改變我的反射矩陣做倒轉。 (應該只是另一個反射?)
這是我的反射矩陣(其將攝像機的視圖矩陣):
glm::mat4 matReflection(
1.f -2.f *n.x *n.x,-2.f *n.x *n.y,-2.f *n.x *n.z,-2.f *n.x *d,
-2.f *n.x *n.y,1.f -2.f *n.y *n.y,-2.f *n.y *n.z,-2.f *n.y *d,
-2.f *n.x *n.z,-2.f *n.y *n.z,1.f -2.f *n.z *n.z,-2.f *n.z *d,
0.f,0.f,0.f,1.f
);
N =正常反射的平面; d =飛機的距離
是否有可能通過矩陣轉換來顛倒頂點順序?如果是這樣,究竟如何?
您的問題是三角形的倒轉順序,例如,因爲您已啓用背面剔除功能,或者正在着色器中使用「gl_FrontFacing」?如果不改變訂單狀態,這將很難解決。還是與法線方向一致?這可以通過對法線進行適當的轉換來解決。 –