TEST-STRCMP4CODES
From SimsWiki
- beginshader RotatingSteamLayers
- description Two layers of rotating steam textures
- extraparam float steamLayer1RotationSpeed 0.02 -1 1 ; Rotational speed of layer 1
- extraparam float steamLayer2RotationSpeed 0.02 -1 1 ; Rotational speed of layer 2
- extraparam float steamLayer1RotationX 0.5 -1 2 ; Rotation center X texture coord for layer 1
- extraparam float steamLayer1RotationY 0.5 -1 2 ; Rotation center Y texture coord for layer 1
- extraparam float steamLayer2RotationX 0.5 -1 2 ; Rotation center X texture coord for layer 2
- extraparam float steamLayer2RotationY 0.5 -1 2 ; Rotation center Y texture coord for layer 2
- extraparam int stdMatLayer 0 -32 32 ; Layer for render order
setf steamLayer1RotationSpeed 0.02 setf steamLayer2RotationSpeed 0.02 setf steamLayer1RotationX 0.5 setf steamLayer1RotationY 0.5 setf steamLayer2RotationX 0.5 setf steamLayer2RotationY 0.5 define RotatingSteamLayers() material attributes attribute steamFade float1 0 end
shader -layer ($stdMatLayer * 18 + 17) vertexFormatPred position 0 true vertexFormatPred blendindices 0 false vertexFormatPred targetindices 0 false create SteamPass($stdMatBaseTextureName $steamLayer1RotationSpeed ($steamLayer1RotationX, $steamLayer1RotationY)) create SteamPass($stdMatBaseTextureName $steamLayer2RotationSpeed ($steamLayer2RotationX, $steamLayer2RotationY)) end end enddef
- endshader RotatingSteamLayers
define SteamPass(steamTexture speed origin)
pass -fixedFunction create LightingStates() depthTest true -enableDepthWrite false alphaBlend srcFactor(srcColor) add dstFactor(invSrcColor) ffMatCoef -emit (1,1,1) -diff (0,0,0) -diffAlpha @steamFade fillmode $stdMatFillMode
stage ffTextureCoordsSource 0 texture &steamTexture textureBlend select(texture) multiply(texture diffuse) end
stage ffTextureCoordsSource 0 textureMatrixAnimation -targetType fixedFunction -arot sawtooth &speed 0 (0,1) -aorigin ((1, 1) - (&origin)) texture &steamTexture textureBlend multiply(outRegister:alphaReplicate texture) multiply(outRegister texture) end end
enddef
define CubeAlphaFalloffTexture()
material attributes attribute color float3 attribute alpha float1 attribute scale float1 end
shader -layer ($stdMatLayer * 18 + 17) vertexFormatPred position 0 true vertexFormatPred normal 0 true vertexFormatPred texcoord 0 true vertexFormatPred blendindices 0 false vertexFormatPred targetindices 0 false
create DetermineHardwareSupport() if ($useFixedFunctionPath or $useSWVertexShaderPath) pass -fixedFunction create LightingStatesNoStdLightsParam(true false) alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) depthTest true -enableDepthWrite false colorScalar @color @alpha ffScaleModelTransform @scale fillmode $stdMatFillMode
stage texture $stdMatEnvCubeTextureName -alphaFalloffCubeMap 64 (0, 1, 0) (-30, 255) 5 textureMIPFilterHint disabled
ffTextureCoordsSource fromNormal textureTransformType vector3 # ffTextureMatrix -orientToCamera
textureAddressing clamp clamp clamp
textureBlend select(texture:alphaReplicate) multiply(texture colorScalar) end
stage texture $stdMatBaseTextureName ${stdMatBaseTextureParam} ffTextureCoordsSource 0 textureBlend select(colorScalar) multiply(outRegister texture) end end else pass # supports global wireframe modes and so forth. create NonStandardLighting() alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) depthTest true -enableDepthWrite false
shaderProgram -target vertexProgram -method assemble bindConstants 0 -bindingID geomToClip -constantCount 4 bindConstants 10 -bindingID immediateData -data (@scale) bindConstants 4 -bindingID geomToCamera -constantCount 3 shaderSource vs_1_1 def c11, 0,0.5,1,2 dcl_position v0 dcl_normal v1 dcl_texcoord v2 mul r0.xyz, v0, c10.x mov r0.w, v0.wwww m4x4 oPos, r0, c0 m3x3 oT0.xyz, v1,c4 mov oT1.xy, v2 endShaderSource end shaderProgram -target pixelProgram -method assemble bindConstants 0 -bindingID immediateData -data (@color) bindConstants 1 -bindingID immediateData -data (@alpha) -startChannel w shaderSource ps_1_1 tex t0 tex t1
mov r0.rgb, c0 +mul r0.a,t0.a, c1.a mul r0.a, t1.a, r0.a endShaderSource end
sampler 0 texture $stdMatEnvCubeTextureName -alphaFalloffCubeMap 64 (0, 1, 0) (-30, 255) 5 textureMIPFilterHint disabled textureAddressing clamp clamp clamp end sampler 1 texture $stdMatBaseTextureName ${stdMatBaseTextureParam} end end endif end shader end end
enddef
materialDefinition steamSphere_steam
setDefinition CubeAlphaFalloffTexture addParam stdMatLayer 13 addParam stdMatEnvCubeTextureName steamSphere_alphaFalloff5 addParam stdMatBaseTextureName steam-alpha
end
materialDefinition effectsSteam_steam
setDefinition CubeAlphaFalloffTexture addParam stdMatLayer 13 addParam stdMatEnvCubeTextureName steamSphere_alphaFalloff5 addParam stdMatBaseTextureName effectsSteam-alpha
end
materialDefinition effectsSmallSteam_steam
- < test use of the StandardParticleModelMaterial
setDefinition StandardParticleModelMaterial addParam stdMatBaseTextureName steam-alpha addParam stdMatDiffCoef (1, 1, 1) addParam stdMatBaseTextureAlphaReplicate true
- >
setDefinition CubeAlphaFalloffTexture addParam stdMatLayer 15 addParam stdMatEnvCubeTextureName steamSphere_alphaFalloff5 addParam stdMatBaseTextureName steam-alpha
end
materialDefinition fightPuff_puffball
setDefinition CubeAlphaFalloffTexture addParam stdMatLayer 13 addParam stdMatEnvCubeTextureName steamSphere_alphaFalloff5 addParam stdMatBaseTextureName effectsFightPuff-alpha
end