ShaderNeighborhoodroads

From SimsWiki
Jump to: navigation, search

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)


Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox