我試圖讓鏡面高光超過紋理映射的objetcs。據我所知,OpenGL不直接計算紋理顏色的最終顏色(例如純白色)的方法是調用glLightModelf(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR)
,但在OpenGL ES中不支持。OpenGL ES中的高光紋理?
那麼,我該怎麼做呢?我是否還需要使用另一種紋理作爲特別亮點,還有另一種更簡單的方法嗎?
比你!
P.S.我正在使用OpenGL ES 1.x
我試圖讓鏡面高光超過紋理映射的objetcs。據我所知,OpenGL不直接計算紋理顏色的最終顏色(例如純白色)的方法是調用glLightModelf(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR)
,但在OpenGL ES中不支持。OpenGL ES中的高光紋理?
那麼,我該怎麼做呢?我是否還需要使用另一種紋理作爲特別亮點,還有另一種更簡單的方法嗎?
比你!
P.S.我正在使用OpenGL ES 1.x
一種解決方法是兩次運行:第一次使用環境渲染紋理&漫反射光照,第二次渲染將高光反射渲染到頂部(未啓用紋理處理) 。
感謝您的寶貴建議,他們拯救了我的一天。唯一的問題是閃爍。我首先想到深度緩衝區和有限的深度分辨率存在問題,但事實並非如此。我不得不使用gl.glDepthFunc(GL10.GL_ALWAYS);完美融合。但是對於複雜的基元,您將能夠看穿該物體。
玩了一個星期後,我發現只需在進行混合時禁用深度測試,並簡單地照顧每次渲染對象的順序。通常,您希望在繪製更近的物體之前完成遠物體的所有渲染過程。 這照顧我完全有的閃爍問題。
假設OpenGL ES 1.0/1.1正確嗎?在OpenGL ES 2.0中,這將是微不足道的。 – 2012-03-04 19:26:38
是的,opengl es 1.x,忘記提及它,對不起 – WaLi 2012-03-04 19:30:09