【问题标题】:Directional lighting in Webgl shaderWebgl 着色器中的定向照明
【发布时间】:2013-11-16 11:58:48
【问题描述】:

在 OpenGL 中我可以做类似的事情

glEnable(GL_LIGHTING)
glEnable(GL_LIGHT0)
...
GLfloat position[] = {-1.0f, 0.5f, 0.5f, 0.0f};
glLightfv(GL_LIGHT1, GL_DIFFUSE, color);
glLightfv(GL_LIGHT1, GL_POSITION, position);

我会有一个定向灯。

如何在 webgl 的着色器中创建定向光?特别是以下情况:

------------------------>     |                O
^                             ^                ^
directional light source     wall             Some object

我希望墙壁(或任何其他不透明物体)吸收光线,防止其撞击物体 O

【问题讨论】:

  • 你想在你的程序中实现阴影吗?
  • 传统 OpenGL 中的光照只不过是基于光源方向/距离衰减的花哨的逐顶点插值颜色。您似乎在描述的内容暗示了阴影投射,OpenGL 在 API 级别上从未支持过。这些部件已经就位,可以自己实现阴影,但你必须做一些肮脏的工作。

标签: graphics opengl-es webgl shader lighting


【解决方案1】:

您可以使用一种称为阴影映射的技术来获得漂亮的阴影。这是我用来学习它的教程:

http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/

http://en.wikipedia.org/wiki/Shadow_mapping

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多