- Home /
Porting GLSL Shader: Dotted
I'm having difficulty porting a GLSL shader to Unity. Mainly the problem is what to do with the Uniform variables. Do these become properties? or exist in their own category? Besides that, the rest of the code should be ok.
Shader "BitShader"
{
Properties
{
// This allows to choose the texture from the Editor
_MainTex ("Base (RGB)", 2D) = "white" {}
not sure what to do with these:
uniforms: {
uDirLightPos: { type: v3, value: new THREE.Vector3() }, uDirLightColor: { type: c, value: new THREE.Color( 0xeeeeee ) },
uAmbientLightColor: { type: c, value: new THREE.Color( 0x050505 ) },
uBaseColor: { type: c, value: new THREE.Color( 0xffffff ) }, uLineColor1: { type: c, value: new THREE.Color( 0x000000 ) }
}
SubShader
{
Tags { "Queue" = "Geometry" }
Pass
{
GLSLPROGRAM
#ifdef VERTEX
varying vec3 vNormal;
void main() {
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
vNormal = normalize( normalMatrix * normal );
}
#endif
#ifdef FRAGMENT
uniform vec3 uBaseColor;,
uniform vec3 uLineColor1;
uniform vec3 uLineColor2;
uniform vec3 uLineColor3;
uniform vec3 uLineColor4;
uniform vec3 uDirLightPos;
uniform vec3 uDirLightColor;
uniform vec3 uAmbientLightColor;
varying vec3 vNormal;
void main() {
float directionalLightWeighting = max( dot( normalize(vNormal), uDirLightPos ), 0.0);
vec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;
gl_FragColor = vec4( uBaseColor, 1.0 );
if ( length(lightWeighting) < 1.00 ) {
if ( ( mod(gl_FragCoord.x, 4.001) + mod(gl_FragCoord.y, 4.0) ) > 6.00 ) {
gl_FragColor = vec4( uLineColor1, 1.0 );
}
}
if ( length(lightWeighting) < 0.50 ) {
if ( ( mod(gl_FragCoord.x + 2.0, 4.001) + mod(gl_FragCoord.y + 2.0, 4.0) ) > 6.00 ) {
gl_FragColor = vec4( uLineColor1, 1.0 );
}
}
}
#endif
ENDGLSL
}
}
}
Your answer
Follow this Question
Related Questions
converting HLSL to GLSL. 0 Answers
Shader error: Shader program of type 'vp' already exists at line .... 1 Answer
iPhone: Use of undeclared identifier '_patchFragColor' 1 Answer
GLSL error 1 Answer
Awesome Bump shader in Unty? 0 Answers