在OpenGL 2.0+中照亮纹理对象

时间:2016-09-23 18:10:22

标签: java android-studio opengl-es shader

我一直在开发一个多维数据集程序,它提供了许多具有所需质量的多维数据集。但是,每当我尝试点亮纹理立方体时,我的立方体就变得非常暗。照明效果非常适合非纹理立方体,所以我相信它已经完成,就像一个没有照明工作的简单纹理立方体。似乎没有关于如何在OpenGL 2.0+中解决这个问题的重要文档,但有一些与旧版本有关的事情。

以下link提供了有关我的多维数据集行为原因的信息,但是我无法将解决方案转换为更新的版本,尤其是在我的着色器代码中,我不确定是否会进一步更改应该发生。我正在使用Android Studio 2.1.3,如果它和它包含的模拟器会产生问题以达到预期的效果。如果有人可以提供任何建议,我将非常感激。我有一个单独的(大)渲染器,要求绘制Cube,让我知道除了我的Cube之外该代码是否也是有益的。下面是我的立方体:

{{1}}

1 个答案:

答案 0 :(得分:1)

  1. 您错过了照明的环境组件,它会模拟您在现实生活中会得到的二阶(和更高)反射,但不能直接在光栅化器中获得。
  2. 不确定为什么要在片段着色器中对a_Color进行平方。这肯定会使事情变得更暗,因为所有值都在0到1之间;例如0.1^2 == 0.01
  3. 请记住,您的点积可能是负数,因此您想要夹住负漫反射成分(例如,背光的表面没有光强度)。