|
|||||||
![]() |
|
|
Thread Tools |
|
||||
http://www.dev.com.br/dimy/ Here is a new project: Mechdroid. I hope you will enjoy it. Gameplay is very, very simple. My intention was to help people starting with the engine. Yours,
Last edited by Thorgal; 26-Jun-07 at 14:24. Reason: added some screens |
||||
|
#1
|
||||
|
|
|
||||
|
Cool. I can't find the normal map script I used to have so thanks for adding the nice maps to your enviorment and character.
............................................
You goin disco? |
||||
|
#2
|
|
||||
|
Hey, thank you for your feedback Yes.
You should find the Blender Foundation script for normalmap inside my download area ("packed" onto, "mechdroidanimated.blend" and "mechdroidgame.blend" or inside Blender Foundation downloads for realtime. It is just a two channel texture script ![]() Now you can also use ctrlC and ctrlV from this post: import GameLogic as g objlist = g.getCurrentScene().getObjectList() g.setLogicTicRate(60.0) # ------------------------------------- ShaderObjects = [ objlist['OBmechdroid'] ] MaterialIndexList = [0,1] GlobalAmbient = [0.39,0.35,0.32,1] AmbF = 0.5 # ------------------------------------- VertexShader = """ uniform mat4 mvi; vec4 Tangent; varying vec4 vcol; varying vec3 lvec,vvec; vec3 TBN(in vec3 by) { vec3 tangent = (Tangent.xyz); vec3 binormal = cross(gl_Normal, Tangent.xyz)*Tangent.w; vec3 normal = gl_Normal; vec3 tvec; tvec.x = dot(tangent, by); tvec.y = dot(binormal, by); tvec.z = dot(normal, by); return tvec; } void main() { gl_Position = ftransform(); // texcoord now (vec4()) Tangent = gl_MultiTexCoord1; vec4 light0 = (mvi*gl_LightSource[0].position)-gl_Vertex; vec4 view = mvi[3]-gl_Vertex; lvec = TBN(light0.xyz); vvec = TBN(view.xyz); gl_TexCoord[0] = gl_MultiTexCoord0; vcol =gl_Color; } """ FragmentShader = """ varying vec4 vcol; varying vec3 lvec,vvec,hvec; uniform sampler2D color; uniform sampler2D bump; void main() { vec4 diffuse_color = vcol*gl_LightSource[0].diffuse; vec4 specular_color = gl_FrontMaterial.specular; vec4 colormap = texture2D(color, gl_TexCoord[0].st); vec3 lv = normalize(lvec); vec3 vv = normalize(vvec); vec3 nv = normalize(2.0*texture2D(bump, gl_TexCoord[0].st).xyz-1.0); float diff = max(dot(lv, nv), 0.0); float spec = pow(max(dot(reflect(-vv, nv), lv),0.0), gl_FrontMaterial.shininess); vec4 diff_pass = colormap*(diff*diffuse_color); vec4 spec_pass = spec*specular_color; gl_FragColor = vec4(0.1,0.1,0.1,1.0)+diff_pass+spec_pass; } """ def MainLoop (): # for each object for obj in ShaderObjects: mesh_index = 0 mesh = obj.getMesh(mesh_index) while mesh != None: for mat in mesh.materials: # regular TexFace materials do NOT have this function if not hasattr(mat, "getMaterialIndex"): return mat_index = mat.getMaterialIndex() # find an index found = 0 for i in range(len(MaterialIndexList)): if mat_index == MaterialIndexList[i]: found=1 break if not found: continue shader = mat.getShader() if shader != None: if not shader.isValid(): shader.setSource(VertexShader, FragmentShader,1) # shader.setAttrib(g.SHD_TANGENT) shader.setUniformDef('mvi', g.MODELVIEWMATRIX_INVERSE) shader.setSampler('color', 0) shader.setSampler('bump', 1) mesh_index += 1 mesh = obj.getMesh(mesh_index) # ------------------------------------- MainLoop() # ------------------------------------- Last edited by Thorgal; 25-Jun-07 at 14:52. |
||||
|
#3
|
|
||||
|
Thanks dood.
............................................
You goin disco? |
||||
|
#4
|
|
||||
|
You are welcome!
Have you also tried Piraniac's toon shader? http://blenderartists.org/forum/showthread.php?t=97601 Its awesome! |
||||
|
#5
|
|
||||
|
Your game seems very good but my graphic card can't handle your graphics. Everything has inverted colors.
|
||||
|
#6
|
|
||||
|
Hi C-106 Delta!
So sorry! I guess your graphics card doesn't have open gl 2.0 support... But don't worry! Soon i will post another version able to work without GLSL ![]() Right now you can turn off "use blender materials" inside the game menu bar. This will make Uv mapping work with just the main texture, not the normalmap thingie and colors will be better for you. I hope it works... Bye! Last edited by Thorgal; 27-Jun-07 at 21:16. Reason: grammar |
||||
|
#7
|
|
||||
|
added some screens
|
||||
|
#8
|
![]() |
| Bookmarks |
| Thread Tools | |
|
|