3

我目前正在尝试在 bge(blender 游戏引擎)中实现类似 tron 的游戏模型。我相信做到这一点的唯一方法是使用 GLSL 着色器。我对学习如何使用这个强大的工具非常感兴趣。我只找到了一个教程网站,即http://en.wikibooks.org/wiki/GLSL_Programming/Blender。无论我看了多少遍,我似乎都无法找到如何做我需要的 tron 外观。我想如何做到这一点是通过具有二级纹理,该纹理在材料正常渲染的地方具有黑色,在添加“光”的地方具有白色。光只是被绘制成无阴影的,带有一点绽放。

这是风格:http: //imgur.com/a/6vOwN

我似乎无法找到答案的问题是:

我如何获得材料之间的匹配颜色,以便我可以判断材料的那部分是白色(浅色)还是黑色(不透明)?

如何从材质中获取颜色,以便将其输出为无阴影或不透明?

如何添加绽放?

我当前的代码(什么都不做)如下所示:

(这只是为了展示blender使用的结构)

import bge

cont = bge.logic.getCurrentController()

VertexShader = """
   varying vec4 color;

   void main()
   {
       color = gl_MultiTexCoord0; // set the varying to this attribute

       gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
   }
"""

FragmentShader = """
   varying vec4 color;

   void main()
   {   
      gl_FragColor = color;
   }
"""


mesh = cont.owner.meshes[0]
for mat in mesh.materials:
    shader = mat.getShader()
    if shader != None:
        if not shader.isValid():
            shader.setSource(VertexShader, FragmentShader, 1)
4

0 回答 0