Difference between revisions of "ShaderLotskirt"
From SimsWiki
(EP1-UNI) |
|||
Line 1: | Line 1: | ||
<pre> | <pre> | ||
− | + | EP2-NL | |
0xCD7FE87A | 0xCD7FE87A | ||
0x1C0532FA | 0x1C0532FA | ||
Line 14: | Line 14: | ||
− | seti lotSkirtLayer - | + | seti lotSkirtLayer -6 |
Line 32: | Line 32: | ||
validateRenderShaderContext -vertexFormat texcoord 0 required | validateRenderShaderContext -vertexFormat texcoord 0 required | ||
− | |||
− | + | # not all lots seem to have this data, causing validation errors, making this a dynamic predicate solves this problem. | |
− | + | setb hasColor (hasVertexFormat(color,0)) | |
− | + | if ($hasColor) | |
− | + | validateRenderShaderContext -vertexFormat color 0 required | |
− | + | endif | |
− | + | ||
− | + | ||
+ | pass -fixedFunction | ||
+ | create LightingStates() | ||
− | + | depthTestFunction acceptIfLessOrEqual | |
− | + | ffDepthOffset -1 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | create | + | create AttenuatedMatCoef(1.0) |
− | + | alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) | |
− | + | fillmode $stdMatFillMode | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | stage | |
− | + | texture $surfaceTexture | |
− | end | + | textureAddressing tile tile |
− | + | textureBlend multiply(texture diffuse) select(diffuse) | |
− | + | end | |
+ | end | ||
end #end shader | end #end shader | ||
end #end material | end #end material | ||
Line 221: | Line 168: | ||
end | end | ||
enddef | enddef | ||
+ | |||
+ | define LotSkirtBoundaryClipMaterial() | ||
+ | material | ||
+ | shader -layer (($lotSkirtLayer - 1) * 8) | ||
+ | pass -fixedFunction -clipAlways | ||
+ | colorScalar (1, 1, 1, 1) | ||
+ | depthTest true -enableDepthWrite true | ||
+ | alphaBlend srcFactor(destColor) add dstFactor(zero) | ||
+ | depthTestFunction acceptIfLess | ||
+ | cullmode cullCounterClockwise | ||
+ | stage | ||
+ | textureBlend select(colorScalar) select(colorScalar) | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | enddef | ||
+ | |||
+ | materialDefinition lotSkirtBoundaryClip | ||
+ | setDefinition LotSkirtBoundaryClipMaterial | ||
+ | end | ||
# ============================================================================== | # ============================================================================== | ||
Line 240: | Line 208: | ||
create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00000300 lotskirtroad_european_00000304) | create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00000300 lotskirtroad_european_00000304) | ||
create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00004b00 lotskirtroad_european_00004b04) | create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00004b00 lotskirtroad_european_00004b04) | ||
+ | |||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00005700 lotskirtroad_dirt_00005704) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00020700 lotskirtroad_dirt_00020704) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00000f00 lotskirtroad_dirt_00000f04) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00000300 lotskirtroad_dirt_00000304) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00004b00 lotskirtroad_dirt_00004b04) | ||
+ | |||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00005700 lotskirtroad_concrete_00005704) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00020700 lotskirtroad_concrete_00020704) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00000f00 lotskirtroad_concrete_00000f04) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00000300 lotskirtroad_concrete_00000304) | ||
+ | create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00004b00 lotskirtroad_concrete_00004b04) | ||
</pre> | </pre> |
Revision as of 13:17, 22 April 2007
EP2-NL 0xCD7FE87A 0x1C0532FA 0x0C50FBBF 0xFF439C10 # lotskirt # # Shaders for lot skirt # # seti lotSkirtLayer -6 # ============================================================================== define LotSkirtMaterialDefinition() setb hasColor false seti totalLights 0 material setc stdMatDiffCoef $terrainMatDiffCoef shader -layer ($lotSkirtLayer * 8) validateRenderShaderContext -vertexFormat position 0 required validateRenderShaderContext -vertexFormat normal 0 required validateRenderShaderContext -vertexFormat texcoord 0 required # not all lots seem to have this data, causing validation errors, making this a dynamic predicate solves this problem. setb hasColor (hasVertexFormat(color,0)) if ($hasColor) validateRenderShaderContext -vertexFormat color 0 required endif pass -fixedFunction create LightingStates() depthTestFunction acceptIfLessOrEqual ffDepthOffset -1 create AttenuatedMatCoef(1.0) alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) fillmode $stdMatFillMode stage texture $surfaceTexture textureAddressing tile tile textureBlend multiply(texture diffuse) select(diffuse) end end end #end shader end #end material enddef define LotSkirtRoadMaterialDefinition() setb hasColor false seti totalLights 0 material shader -layer ($lotSkirtLayer * 8) validateRenderShaderContext -vertexFormat position 0 required validateRenderShaderContext -vertexFormat normal 0 required validateRenderShaderContext -vertexFormat texcoord 0 required #create DetermineHardwareSupport() #if ($useFixedFunctionPath) setb hasColor (hasVertexFormat(color,0)) if ($hasColor) validateRenderShaderContext -vertexFormat color 0 required endif pass -fixedFunction create LightingStates() #create LightingStatesNoStdLights() create AttenuatedMatCoef(1.0) alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) fillmode $stdMatFillMode stage texture $surfaceTexture textureAddressing clamp clamp textureBlend multiply(texture diffuse) multiply(texture diffuse) end end #< else create SetupCommonHWShaderVariablesAndPredicates() if ($hasColor) vertexFormatPred color 0 true endif pass create NonStandardLighting() fillmode $stdMatFillMode alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) shaderProgram -target vertexProgram -method link create BindsForHardwareVS1Transforms(false false) create BindsForLighting($kFullLighting) # override diffuse, since DX8 path divs by 2. shaderFragment TransformRigidForLighting1_1 if ($totalLights) bindConstants 14 -bindingID immediateData -data (2,2,2,1) shaderFragment TransformRigidForLighting1_1 create DX8DiffusePassLightFragments(true false 0 $totalLights $distantLightCount $pointLightCount $spotLightCount 1_1) shaderFragment CopyVertexAlphaToDiffuse1_1 stage texture $surfaceTexture textureAddressing tile tile textureBlend multiply(texture diffuse) multiply(texture diffuse) end else # eyeballed this value to sorta make the sidewalks match. # grass is still dark, road matches ok. bindConstants 14 -bindingID immediateData -data (0.8,0.82,0.88,1) shaderFragment TransformPositionRigidNoLighting1_1 shaderFragment Copy2DTexcoords1_1 shaderFragment AmbientLightingVertexColorMaterial1_1 stage texture $surfaceTexture textureAddressing tile tile textureBlend multiply(texture diffuse) multiply(texture diffuse) end endif end end #end pass endif #> end end enddef define LotSkirtRoadMaterialInstance(materialName textureName) materialDefinition &materialName setDefinition LotSkirtRoadMaterialDefinition addParam surfaceTexture &textureName end enddef define LotSkirtBoundaryClipMaterial() material shader -layer (($lotSkirtLayer - 1) * 8) pass -fixedFunction -clipAlways colorScalar (1, 1, 1, 1) depthTest true -enableDepthWrite true alphaBlend srcFactor(destColor) add dstFactor(zero) depthTestFunction acceptIfLess cullmode cullCounterClockwise stage textureBlend select(colorScalar) select(colorScalar) end end end end enddef materialDefinition lotSkirtBoundaryClip setDefinition LotSkirtBoundaryClipMaterial end # ============================================================================== create LotSkirtRoadMaterialInstance(lotSkirtRoad_Desert_00005700 lotskirtroad_desert_00005704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Desert_00020700 lotskirtroad_desert_00020704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Desert_00000f00 lotskirtroad_desert_00000f04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Desert_00000300 lotskirtroad_desert_00000304) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Desert_00004b00 lotskirtroad_desert_00004b04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Temperate_00005700 lotskirtroad_temperate_00005704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Temperate_00020700 lotskirtroad_temperate_00020704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Temperate_00000f00 lotskirtroad_temperate_00000f04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Temperate_00000300 lotskirtroad_temperate_00000304) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Temperate_00004b00 lotskirtroad_temperate_00004b04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00005700 lotskirtroad_european_00005704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00020700 lotskirtroad_european_00020704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00000f00 lotskirtroad_european_00000f04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00000300 lotskirtroad_european_00000304) create LotSkirtRoadMaterialInstance(lotSkirtRoad_European_00004b00 lotskirtroad_european_00004b04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00005700 lotskirtroad_dirt_00005704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00020700 lotskirtroad_dirt_00020704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00000f00 lotskirtroad_dirt_00000f04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00000300 lotskirtroad_dirt_00000304) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Dirt_00004b00 lotskirtroad_dirt_00004b04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00005700 lotskirtroad_concrete_00005704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00020700 lotskirtroad_concrete_00020704) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00000f00 lotskirtroad_concrete_00000f04) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00000300 lotskirtroad_concrete_00000304) create LotSkirtRoadMaterialInstance(lotSkirtRoad_Concrete_00004b00 lotskirtroad_concrete_00004b04)