ShaderNeighborhoodroads
From SimsWiki
EP2-NL 0xCD7FE87A 0x1C0532FA 0x10411F6C 0xFF6BE964 # neighborhoodroads # # Predefined neighborhood materials # # # In an ideal world these would be code-set variables. setf terrainCellSize 10 seti terrainNumCells 128 setf terrainWidth ($terrainCellSize * $terrainNumCells) seti nhoodRoadLayer -1 # ============================================================================== define NHoodRoadMaterialDef() material shader -layer ($nhoodRoadLayer * 8) viewerRenderTypePred $kRenderTypeNormal create DetermineHardwareSupport() if ($useSWVertexShaderPath) pass shaderProgram -target vertexProgram -method link create BindsForSoftwareVSTransforms(false false) setv4 texgenData ( 0, 0 , 1/($terrainWidth), 1/($terrainWidth)) bindConstants 11 -bindingID immediateData -data $texgenData create TransformFragments( false false true false 0 0 false 2_x) shaderFragment Copy2DTexcoords2_x shaderFragment TerrainLightmapTexgenUVOne2_x end alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) fillmode $stdMatFillMode colorScalar (1, 1, 1, 1) stage texture $stdMatBaseTextureName textureAddressing clamp clamp textureBlend select(texture) select(texture) end stage texture "nhoodLightMap" textureBlend multiply(texture outRegister) select(outRegister) end end else # temp force to FF to prevent flicker if (0) #$useFixedFunctionPath = false) #create PixelShaderNHoodRoadMaterialDef() setb foo false else pass -fixedFunction create LightingStatesNoStdLights() alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha) fillmode $stdMatFillMode colorScalar (1, 1, 1, 1) stage texture $stdMatBaseTextureName textureAddressing clamp clamp ffTextureCoordsSource 0 textureBlend select(texture) select(texture) end stage texture "nhoodLightMap" ffTextureMatrix -cameraToGlobal -scale ($terrainWidth) -invert ffTextureCoordsSource fromPosition textureBlend multiply(texture outRegister) select(outRegister) end end endif endif end shader viewerRenderTypePred viewerRenderType end end enddef define NHoodRoadMaterial(materialName textureName) materialDefinition &materialName setDefinition NHoodRoadMaterialDef addParam stdMatBaseTextureName &textureName end enddef # This material is used for road supports and retaining walls. # Don't clamp it like a normal road texture. define NHoodSupportMaterial(materialName textureName) materialDefinition &materialName setDefinition StandardMaterial addParam stdMatLightingEnabled true addParam stdMatDiffCoef (1.0, 1.0, 1.0) addParam stdMatBaseTextureName &textureName addParam stdMatBaseTextureEnabled true addParam stdMatAlphaBlendMode blend end enddef ################################################################## create NHoodRoadMaterial(neighborhood-roads-Desert-00005700 Desert_roads_00005704) create NHoodRoadMaterial(neighborhood-roads-Desert-00020700 Desert_roads_00020704) create NHoodRoadMaterial(neighborhood-roads-Desert-00000f00 Desert_roads_00000f04) create NHoodRoadMaterial(neighborhood-roads-Desert-00000300 Desert_roads_00000304) create NHoodRoadMaterial(neighborhood-roads-Desert-00004b00 Desert_roads_00004b04) create NHoodRoadMaterial(neighborhood-roads-Temperate-00005700 Temperate_roads_00005704) create NHoodRoadMaterial(neighborhood-roads-Temperate-00020700 Temperate_roads_00020704) create NHoodRoadMaterial(neighborhood-roads-Temperate-00000f00 Temperate_roads_00000f04) create NHoodRoadMaterial(neighborhood-roads-Temperate-00000300 Temperate_roads_00000304) create NHoodRoadMaterial(neighborhood-roads-Temperate-00004b00 Temperate_roads_00004b04) create NHoodRoadMaterial(neighborhood-roads-European-00005700 European_roads_00005704) create NHoodRoadMaterial(neighborhood-roads-European-00020700 European_roads_00020704) create NHoodRoadMaterial(neighborhood-roads-European-00000f00 European_roads_00000f04) create NHoodRoadMaterial(neighborhood-roads-European-00000300 European_roads_00000304) create NHoodRoadMaterial(neighborhood-roads-European-00004b00 European_roads_00004b04) create NHoodSupportMaterial(neighborhood-roads-08080000 bridge-sides) create NHoodSupportMaterial(neighborhood-roads-0912220e bridge-sides) create NHoodSupportMaterial(neighborhood-roads-00bb0000 bridge-sides) create NHoodSupportMaterial(neighborhood-roads-00bb0200 bridge-sides) create NHoodRoadMaterial(neighborhood-roads-Concrete-00005700 Concrete_roads_00005704) create NHoodRoadMaterial(neighborhood-roads-Concrete-00020700 Concrete_roads_00020704) create NHoodRoadMaterial(neighborhood-roads-Concrete-00000f00 Concrete_roads_00000f04) create NHoodRoadMaterial(neighborhood-roads-Concrete-00000300 Concrete_roads_00000304) create NHoodRoadMaterial(neighborhood-roads-Concrete-00004b00 Concrete_roads_00004b04) create NHoodRoadMaterial(neighborhood-roads-Dirt-00005700 Dirt_roads_00005704) create NHoodRoadMaterial(neighborhood-roads-Dirt-00020700 Dirt_roads_00020704) create NHoodRoadMaterial(neighborhood-roads-Dirt-00000f00 Dirt_roads_00000f04) create NHoodRoadMaterial(neighborhood-roads-Dirt-00000300 Dirt_roads_00000304) create NHoodRoadMaterial(neighborhood-roads-Dirt-00004b00 Dirt_roads_00004b04) # This material is used underneath roads adjacent to zones. create NHoodRoadMaterial(neighborhood-roads-08200000 bridge-sides)