Thread: [cgkit-commits] cgkit2/cgkit material3ds.py,1.1.1.1,1.2
Brought to you by:
mbaas
From: Matthias B. <mb...@us...> - 2005-07-09 16:04:29
|
Update of /cvsroot/cgkit/cgkit2/cgkit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5726/cgkit Modified Files: material3ds.py Log Message: Create an internal GL-Material with appropriate attributes that mimics the 3DS material. This means, the 3DS material will now also show up in the standard viewer. Index: material3ds.py =================================================================== RCS file: /cvsroot/cgkit/cgkit2/cgkit/material3ds.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** material3ds.py 12 Dec 2004 14:31:07 -0000 1.1.1.1 --- material3ds.py 9 Jul 2005 16:04:19 -0000 1.2 *************** *** 26,33 **** import os.path, sys, shutil import protocols from Interfaces import * from slots import * ! import lookat from material import Material import ribexport import Image --- 26,35 ---- import os.path, sys, shutil import protocols + from OpenGL.GL import * from Interfaces import * from slots import * ! import lookat, sl, math from material import Material + from glmaterial import GLMaterial, GLTexture import ribexport import Image *************** *** 163,166 **** --- 165,195 ---- self.bump_size = bump_size + if texture1_map==None: + self._gltexture = None + glambient = ambient + gldiffuse = diffuse + else: + map = texture1_map + T = mat4(1,0,0,-map.offset[0]-0.5, 0,-1,0,0.5-map.offset[1], 0,0,1,0, 0,0,0,1) + a = sl.radians(map.rotation) + ca = math.cos(a) + sa = math.sin(a) + R = mat4(ca,-sa,0,0, sa,ca,0,0, 0,0,1,0, 0,0,0,1) + S = mat4(map.scale[0],0,0,0.5, 0,map.scale[1],0,0.5, 0,0,1,0, 0,0,0,1) + self._gltexture = GLTexture(imagename = map.name, + mode = GL_MODULATE, + # transform = mat4().scaling(vec3(1,-1,1)) + transform = S*R*T + ) + glambient = map.percent*vec4(1,1,1,1) + (1-map.percent)*vec4(ambient) + gldiffuse = map.percent*vec4(1,1,1,1) + (1-map.percent)*vec4(diffuse) + + self._glmaterial = GLMaterial(ambient = glambient, + diffuse = gldiffuse, + specular = shin_strength*specular, + shininess = 25*shininess, + texture = self._gltexture + ) + ## print >>sys.stderr, "---",name,"---" ## print >>sys.stderr, "ambient",self.ambient *************** *** 199,202 **** --- 228,237 ---- ## print >>sys.stderr, "wire_size", wire_size + def applyGL(self): + self._glmaterial.applyGL() + + def usesBlending(self): + return self._glmaterial.usesBlending() + def createPasses(self): *************** *** 216,219 **** --- 251,255 ---- return [] + def preProcess(self, exporter): """Preprocessing method. |