|
setUniformDefsetUniformDef(name, enum)Used to bridge the gap between Blender and OpenGL GLSL with predefined functions.name: Type:
string
enum: Type:
(predefined functions)
[mat4]
MODELVIEWMATRIX
[mat4] MODELVIEWMATRIX_TRANSPOSE [mat4] MODELVIEWMATRIX_INVERSE [mat4] MODELVIEWMATRIX_INVERSETRANSPOSE [mat4] MODELMATRIX [mat4] MODELMATRIX_TRANSPOSE [mat4] MODELMATRIX_INVERSE [mat4] MODELMATRIX_INVERSETRANSPOSE [mat4] VIEWMATRIX [mat4] VIEWMATRIX_TRANSPOSE [mat4] VIEWMATRIX_INVERSE [mat4] VIEWMATRIX_INVERSETRANSPOSE [vec3] CAM_POS [float] CONSTANT_TIMER Sample Code# define the main part of the programdef main():# get the current scenescene = GameLogic.getCurrentScene()# get a list of the objects in the sceneobjList = scene.objects# Get the object you want to useobj = objList['OBCube']# Only one mesh on this Cubemesh = obj.meshes[0]# only one material on this meshmat = mesh.materials[0]# Using Blender GLSL Materials or Blender Multitexture Materials?if hasattr( mat, 'getMaterialIndex') == True:#Get shader envelopeshader = mat.getShader()# shader envelope created?if shader != None:# set the shadershader.setSource(VertexProgram, FragmentProgram, True)# set enum defenum = GameLogic.MODELVIEWMATRIX_INVERSE# change Blender matrix to OpenGlshader.setUniformDef('mvi', enum)####### end of main program defVertexProgram = """
|