大灯或了解灯的工作方式

时间:2012-07-03 13:06:52

标签: opengl-es-lighting

我正在开发一个使用OpenGL的3D迷宫项目。尽管我对编程知识不足,但我设法构建它,使用鼠标和键盘添加纹理和转向(尽管在大多数情况下从网络中窃取)。现在我被灯光困住了。

我的想法(类似于着名的游戏SCP-087)是制作一个前灯,光线短。我已经阅读了很多关于OpenGL和法线照明的内容,但是光仍然是奇怪的,随机的。

我有功能,可以在相机周围移动(翻译)我的世界。我明白,如果我将light0放在代码的开头,在Render()函数中进行翻译之前,那个灯应该“仍然放置”在相机上,并且世界将在它们周围移动 - 听起来很简单。但它似乎没有用。当我站在他们旁边时,大部分墙壁都被照亮(当我转向另一侧时,墙壁完全变暗)。

我的另一个问题是正常情况。我很确定,我的法线没有明确说明,但不知道它们应该是什么样子。我正在使用墙壁的三角形条带(理论上是为了提高效率,但实际上它只是我的任性)而且我无法找到解决方法应该如何为由三角形条带制成的直墙指定法线(如何为面部附加法线,当我实际上只有两个顶点定义一个面。制作一面简单的四边形墙并将一个单位矢量的四个垂直长度连接到一个面上也没有任何改进。

我无法正确处理OpenGL状态机的参数,尤其是衰减 - 代码中的任何更改都不会影响最终照明。

我目前不知道,在OpenGL中搜索和阅读有关照明的内容。我想使它超级简单,没有额外的库(glu.h除外)。你能帮我解决一下这个问题,或者向我介绍任何有用的知识来源(需要简单的例子......)?

0 个答案:

没有答案