我目前正试图在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)