GLES drivers adapted, but only did make compile-tests. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6038 dfc29bdd-3216-0410-991c-e03cc46cb475
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| ; part of the Irrlicht Engine Shader example.
 | |
| ; This Direct3D9 vertex shader will be loaded by the engine.
 | |
| ; Please note that these example shaders don't do anything really useful. 
 | |
| ; They only demonstrate that shaders can be used in Irrlicht.
 | |
| 
 | |
| vs.1.1
 | |
| 
 | |
| dcl_position v0;    ; declare position
 | |
| dcl_normal v1;      ; declare normal
 | |
| dcl_color v2;       ; declare color
 | |
| dcl_texcoord0 v3;   ; declare texture coordinate
 | |
| 
 | |
| ; transpose and transform position to clip space 
 | |
| mul r0, v0.x, c4      
 | |
| mad r0, v0.y, c5, r0   
 | |
| mad r0, v0.z, c6, r0   
 | |
| add oPos, c7, r0       
 | |
| 
 | |
| ; transform normal 
 | |
| dp3 r1.x, v1, c0  
 | |
| dp3 r1.y, v1, c1  
 | |
| dp3 r1.z, v1, c2  
 | |
| 
 | |
| ; renormalize normal 
 | |
| dp3 r1.w, r1, r1  
 | |
| rsq r1.w, r1.w    
 | |
| mul r1, r1, r1.w  
 | |
| 
 | |
| ; calculate light vector 
 | |
| m4x4 r6, v0, c10      ; vertex into world position
 | |
| add r2, c8, -r6       ; vtxpos - lightpos
 | |
| 
 | |
| ; normalize light vector 
 | |
| dp3 r2.w, r2, r2  
 | |
| rsq r2.w, r2.w    
 | |
| mul r2, r2, r2.w  
 | |
| 
 | |
| ; calculate light color 
 | |
| dp3 r3, r1, r2       ; dp3 with negative light vector 
 | |
| lit r5, r3           ; clamp to zero if r3 < 0, r5 has diffuce component in r5.y
 | |
| mul oD0, r5.y, c9    ; ouput diffuse color 
 | |
| mov oT0, v3          ; store texture coordinates |