Blender GE中的GLSL着色器

时间:2013-01-13 04:42:54

标签: glsl shader blender

我目前正试图在bge(blender游戏引擎)中实现类似tron的游戏模型。我相信唯一的方法是使用GLSL着色器。我非常有兴趣学习如何使用这个强大的工具。我只找到了一个教程网站http://en.wikibooks.org/wiki/GLSL_Programming/Blender。无论我看多少,我似乎无法找到如何做我需要的tron外观。我想要做的是通过具有黑色的辅助纹理,其中材料将正常渲染,而白色则添加“光”。光线刚刚被遮住了,有点绽放。

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

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

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

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

如何添加绽放?

我当前的代码(什么都不做)看起来像这样:

(这只是为了显示搅拌机使用的结构)

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)

0 个答案:

没有答案