Difference between revisions of "TEST-STRCMP4CODES"
From SimsWiki
| Line 1: | Line 1: | ||
| − | + | # Pool depth layer materials | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | # this is here soley because the layering on standard material | |
| − | + | # is too constrained. We need a layer less than 7, or we'll | |
| − | + | # render over transparent areas of Sims (e.g. hair) when | |
| − | + | # they're in the pool at a shallow view angle. | |
| − | + | setc poolLayerColour (0, 0.5, 1.0, 1.0) | |
| + | define PoolDepthLayerMaterial() | ||
| + | material | ||
| + | create DetermineHardwareSupport() | ||
| + | if ($useSWVertexShaderPath or $useFixedFunctionPath) | ||
| + | shader | ||
| + | end | ||
| + | else | ||
| + | shader -layer $poolWaterLayer | ||
| + | validateRenderShaderContext -vertexFormat position 0 required | ||
| + | validateRenderShaderContext -vertexFormat texcoord 0 required | ||
| − | + | pass | |
| − | + | alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) | |
| − | + | depthTest true -enableDepthWrite false | |
| − | + | #fillmode wireframe | |
| − | + | shaderProgram -target vertexProgram -method compile -version 1_1 | |
| − | + | bindConstants 0 -bindingID geomToClip -constantCount 4 | |
| − | + | bindConstants 4 -bindingID immediateData -data ($poolLayerColour) | |
| − | + | ||
| + | shaderSource | ||
| + | float4x4 clipSpaceMatrix : register(c0); | ||
| + | float4 poolLayer : register(c4); | ||
| + | |||
| + | struct cVertexIn | ||
| + | { | ||
| + | float3 mPosition : POSITION0; | ||
| + | float2 alpha : TEXCOORD0; | ||
| + | }; | ||
| + | |||
| + | struct cVertexOut | ||
| + | { | ||
| + | float4 mClipPosition : POSITION; | ||
| + | float4 mColor : COLOR0; | ||
| + | }; | ||
| + | |||
| + | cVertexOut VertexMain(cVertexIn vertexIn) | ||
| + | { | ||
| + | cVertexOut result; | ||
| + | result.mClipPosition = mul(float4(vertexIn.mPosition, 1), clipSpaceMatrix); | ||
| + | result.mColor = float4(poolLayer.r, poolLayer.g, poolLayer.b, poolLayer.a * vertexIn.alpha.x); | ||
| + | return result; | ||
| + | } | ||
| + | |||
| + | endShaderSource | ||
| + | end | ||
| − | + | shaderProgram -target pixelProgram -method compile -version 1_1 | |
| − | + | shaderSource | |
| − | + | float4 PixelMain(float4 color : COLOR) : COLOR | |
| − | + | { | |
| − | + | return color; | |
| − | + | } | |
| + | endShaderSource | ||
| + | end | ||
| + | end | ||
| + | end | ||
| + | endif | ||
| + | end | ||
| + | enddef | ||
| − | + | materialDefinition "poolWaterLayer-0" | |
| − | + | # this layer does nothing but create the caustics tile. | |
| − | + | setDefinition CausticsGeneratorMaterial | |
| − | + | end | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | materialDefinition "poolWaterLayer-1" | |
| − | + | setDefinition PoolDepthLayerMaterial | |
| − | + | addParam poolLayerColour (0, 0.5, 1.0, 0.2) | |
| − | + | end | |
| − | + | materialDefinition "poolWaterLayer-2" | |
| − | + | setDefinition PoolDepthLayerMaterial | |
| − | + | addParam poolLayerColour (0, 0.5, 1.0, 0.2) | |
| − | + | end | |
| − | + | materialDefinition "poolWaterLayer-3" | |
| − | + | setDefinition PoolDepthLayerMaterial | |
| − | + | addParam poolLayerColour (0, 0.5, 1.0, 0.5) | |
| − | + | end | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
Revision as of 05:48, 3 September 2007
- Pool depth layer materials
- this is here soley because the layering on standard material
- is too constrained. We need a layer less than 7, or we'll
- render over transparent areas of Sims (e.g. hair) when
- they're in the pool at a shallow view angle.
setc poolLayerColour (0, 0.5, 1.0, 1.0) define PoolDepthLayerMaterial()
material
create DetermineHardwareSupport()
if ($useSWVertexShaderPath or $useFixedFunctionPath)
shader
end
else
shader -layer $poolWaterLayer
validateRenderShaderContext -vertexFormat position 0 required
validateRenderShaderContext -vertexFormat texcoord 0 required
pass
alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
depthTest true -enableDepthWrite false
#fillmode wireframe
shaderProgram -target vertexProgram -method compile -version 1_1
bindConstants 0 -bindingID geomToClip -constantCount 4
bindConstants 4 -bindingID immediateData -data ($poolLayerColour)
shaderSource
float4x4 clipSpaceMatrix : register(c0);
float4 poolLayer : register(c4);
struct cVertexIn
{
float3 mPosition : POSITION0;
float2 alpha : TEXCOORD0;
};
struct cVertexOut
{
float4 mClipPosition : POSITION;
float4 mColor : COLOR0;
};
cVertexOut VertexMain(cVertexIn vertexIn)
{
cVertexOut result;
result.mClipPosition = mul(float4(vertexIn.mPosition, 1), clipSpaceMatrix);
result.mColor = float4(poolLayer.r, poolLayer.g, poolLayer.b, poolLayer.a * vertexIn.alpha.x);
return result;
}
endShaderSource
end
shaderProgram -target pixelProgram -method compile -version 1_1
shaderSource
float4 PixelMain(float4 color : COLOR) : COLOR
{
return color;
}
endShaderSource
end
end
end
endif
end
enddef
materialDefinition "poolWaterLayer-0"
# this layer does nothing but create the caustics tile. setDefinition CausticsGeneratorMaterial
end
materialDefinition "poolWaterLayer-1"
setDefinition PoolDepthLayerMaterial addParam poolLayerColour (0, 0.5, 1.0, 0.2)
end materialDefinition "poolWaterLayer-2"
setDefinition PoolDepthLayerMaterial addParam poolLayerColour (0, 0.5, 1.0, 0.2)
end materialDefinition "poolWaterLayer-3"
setDefinition PoolDepthLayerMaterial addParam poolLayerColour (0, 0.5, 1.0, 0.5)
end