Advertisement
Guest User

Untitled

a guest
Mar 15th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// Который выводит позицию из текстуры
  2. varying vec2 v_vPosition;
  3.  
  4. uniform sampler2D u_sTex_Position;
  5. uniform vec2 u_vResolution;
  6. uniform mat4 u_mIVP;
  7.  
  8. void main()
  9. {
  10.     vec2 uv = v_vPosition / u_vResolution;
  11.     vec4 v_position = texture2D( u_sTex_Position, uv );
  12.  
  13.     vec3 pospo2 = v_position.xyz*2.0 - 1.0;
  14.     vec4 posivp = (u_mIVP * vec4((uv * 2.0 - 1.0), v_position.z * 2.0 - 1.0, 1.0));
  15.     vec3 pospos = posivp.xyz/posivp.w;
  16.     gl_FragColor = vec4( pospos, 1.0 );
  17. }
  18.  
  19. /// Который записывает позицию в текстуру
  20. /// VERT
  21. attribute vec3 in_Position;
  22. varying vec4 v_vPosition;
  23. void main()
  24. {
  25.     vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
  26.     gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
  27.     v_vPosition = gl_Position;
  28. }
  29.  
  30. /// FRAG
  31. varying vec4 v_vPosition;
  32. void main()
  33. {
  34.     vec4 pos = v_vPosition;
  35.     pos.xyz /= pos.w;
  36.     pos.xyz *= 0.5;
  37.     pos.xyz += 0.5;
  38.     gl_FragColor = vec4( pos.xyz, 1.0 );
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement