water.glsl 950 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //@renderpasses 1
  2. //@import "pbr"
  3. //@vertex
  4. void main(){
  5. transformVertex();
  6. }
  7. //@fragment
  8. uniform sampler2D m_ColorTexture;
  9. uniform vec4 m_ColorFactor;
  10. uniform float m_Metalness;
  11. uniform float m_Roughness;
  12. uniform sampler2D m_NormalTexture0;
  13. uniform sampler2D m_NormalTexture1;
  14. uniform vec2 m_Velocity0;
  15. uniform vec2 m_Velocity1;
  16. void main(){
  17. vec4 color=texture2D( m_ColorTexture,v_TexCoord0 );
  18. color.rgb=pow( color.rgb,vec3( 2.2 ) );
  19. color*=m_ColorFactor;
  20. vec3 normal0=texture2D( m_NormalTexture0,v_TexCoord0 + m_Velocity0 * r_Time ).xyz * 2.0 - 1.0;
  21. vec3 normal1=texture2D( m_NormalTexture1,v_TexCoord0 + m_Velocity1 * r_Time ).xyz * 2.0 - 1.0;
  22. vec3 normal=normalize( v_TanMatrix * vec3( normal0+normal1 ) );
  23. vec3 ambient=vec3( 0.0 );
  24. vec3 emissive=vec3( 0.0 );
  25. float metalness=0.0;
  26. float roughness=0.0;
  27. float occlusion=1.0;
  28. emitPbrFragment( color,ambient,emissive,metalness,roughness,occlusion,normal );
  29. }