1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- Shader "Hidden/PointCloud_GL"
- {
- Properties
- {
- _PointSize("PointSize", Float) = 5
- _HeightTex("Height Texture", 2D) = "white" {}
- }
- SubShader
- {
- Pass
- {
- LOD 200
- GLSLPROGRAM
- #pragma multi_compile __ HEIGHTMAP_ON
- #ifdef VERTEX
- out vec4 Color;
- uniform sampler2D _HeightTex;
- uniform float _PointSize;
- float ToneMap(float rawValue)
- {
- float contrast = 3.8;
- float exposure = 0.001;
- float a = exposure * pow(rawValue, contrast);
- return a / (1.0f + a);
- }
- void main()
- {
- gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
- gl_PointSize = _PointSize * (1.0 / gl_Position.w);
- #ifdef HEIGHTMAP_ON
- float index = ToneMap(gl_MultiTexCoord0.x);
- Color = texture2D(_HeightTex, vec2(index, 0));
- #else
- Color = gl_Color;
- #endif
- }
- #endif
- #ifdef FRAGMENT
- in vec4 Color;
- void main()
- {
- vec2 coord = gl_PointCoord - vec2(0.5);
- if (length(coord) > 0.5)
- {
- discard;
- }
- gl_FragColor = Color;
- }
- #endif
- ENDGLSL
- }
- }
- Fallback "VertexLit"
- }
|