Difference between revisions of "TEST-STRCMP4CODES"

From SimsWiki
Jump to: navigation, search
 
(23 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
define TransparentMirrorReflection()
 +
  material
 +
      if (viewerRenderType = $kRenderTypeShadow)
 +
        create StandardShaderShadow()
 +
      else
 +
        if (viewerRenderType = $kRenderTypeThumbnail)
 +
            create TransparentBlankMirrorMaterial($kRenderTypeThumbnail)
 +
        else           
 +
            if (not $mirrorReflectionsEnabled)
 +
              set currentType (viewerRenderType)
 +
              create TransparentBlankMirrorMaterial($currentType)
 +
            else
 +
              create TransparentMirrorReflectionMaterial()
 +
            endif           
 +
        endif       
 +
      endif
 +
  end
 +
enddef
  
#beginshader RotatingSteamLayers
+
define TransparentBlankMirrorMaterial(renderType)
#description Two layers of rotating steam textures
+
      shader
#extraparam float steamLayer1RotationSpeed 0.02 -1 1 ; Rotational speed of layer 1
+
        validateRenderShaderContext -viewerRenderType  &renderType
#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
+
        pass           
#extraparam float steamLayer1RotationY 0.5 -1 2 ; Rotation center Y texture coord for layer 1
+
            shaderProgram -target vertexProgram -method assemble
#extraparam float steamLayer2RotationX 0.5 -1 2 ; Rotation center X texture coord for layer 2
+
              bindConstants 0 -bindingID geomToClip -constantCount 4
#extraparam float steamLayer2RotationY 0.5 -1 2 ; Rotation center Y texture coord for layer 2
+
              shaderSource
#extraparam int stdMatLayer 0 -32 32 ; Layer for render order
+
                  vs_1_1
  setf steamLayer1RotationSpeed 0.02
+
                  dcl_position v0
  setf steamLayer2RotationSpeed 0.02
+
                  m4x4 oPos, v0, c0
  setf steamLayer1RotationX 0.5
+
              endShaderSource
  setf steamLayer1RotationY 0.5
+
            end
  setf steamLayer2RotationX 0.5
+
           
  setf steamLayer2RotationY 0.5
+
            colorScalar (0,0,0) 0.5
  define RotatingSteamLayers()
+
            stage
      material
+
              textureBlend select(colorScalar) select(colorScalar)
        attributes
+
             end           
             attribute steamFade float1 0
+
 
         end
 
         end
 +
      end     
 +
enddef
  
        shader -layer ($stdMatLayer * 18 + 17)
+
define TransparentMirrorReflectionMaterial()
            vertexFormatPred position 0 true
+
     
            vertexFormatPred blendindices  0 false
+
      shader -layer -9998  # this material must render first
            vertexFormatPred targetindices 0 false
+
        validateRenderShaderContext -viewerRenderType $kRenderTypeMirror  # reflection render
            create SteamPass($stdMatBaseTextureName $steamLayer1RotationSpeed ($steamLayer1RotationX, $steamLayer1RotationY))
+
            create SteamPass($stdMatBaseTextureName $steamLayer2RotationSpeed ($steamLayer2RotationX, $steamLayer2RotationY))
+
        end
+
      end
+
  enddef
+
#endshader RotatingSteamLayers
+
  
 +
        pass -renderEachFrame
 +
            renderTarget $reflectionRenderTarget -setViewport viewportFromParentRenderContext
  
define SteamPass(steamTexture speed origin)
+
            depthTest true -enableDepthWrite true
  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
+
            applyStencilStateForOverlappingReflections
        ffTextureCoordsSource 0
+
        texture &steamTexture
+
        textureBlend select(texture) multiply(texture diffuse)
+
      end
+
  
      stage
+
            alphaBlend srcFactor(zero) add dstFactor(one)
        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
+
  
 +
            cullmode none
  
 
+
            shaderProgram -target vertexProgram -method assemble           
define CubeAlphaFalloffTexture()
+
              bindConstants 0 -bindingID geomToClipFromParentView -constantCount 4
  material
+
              shaderSource
      attributes
+
                  vs_1_1
        attribute color float3
+
                  dcl_position v0
        attribute alpha float1
+
                  def c5, 1,0,0,1
         attribute scale float1
+
                  m4x4 r0,  v0,  c0
 +
                  mov oPos.x,  -r0
 +
                  mov oPos.yzw, r0                 
 +
              endShaderSource
 +
            end
 +
         end
 
       end
 
       end
  
       shader -layer ($stdMatLayer * 18 + 17)
+
       shader -layer 6
         vertexFormatPred position      0 true
+
         validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
         vertexFormatPred normal        0 true
+
         pass -modifiedEachFrameHint
        vertexFormatPred texcoord      0 true
+
            shaderProgram -target vertexProgram -method assemble           
        vertexFormatPred blendindices 0 false
+
              bindConstants 0 -bindingID geomToClip -constantCount 4
        vertexFormatPred targetindices 0 false
+
              bindConstants 4 -bindingID clipToViewTarget -constantCount 4
 +
              shaderSource
 +
                  vs_1_1
 +
                  dcl_position v0
 +
                  def c8,    -0.5, -0.5, 1, 1
 +
                  def c9,    0.5, 0.5, 0, 0
 +
                  def c10,    0.25, 0.25, 0, 0
 +
                  m4x4 r0,  v0,  c0
 +
                  mov oPos, r0
 +
                  mul r2, c9, r0.w
 +
                  mad r4, r0, c8, r2
 +
                  rcp r3.x, c4.x                                 
 +
                  rcp r3.y, c5.y
 +
                  mov r3.zw, c9.zw
 +
                  mul r3, r3, c10
 +
                  mad r6, r0, r3, r4
 +
                  mov oT0, r6.xyww
 +
              endShaderSource             
 +
            end
  
      create DetermineHardwareSupport()
 
     
 
      if ($useFixedFunctionPath or $useSWVertexShaderPath)
 
        pass -fixedFunction
 
            create LightingStatesNoStdLightsParam(true false)
 
           
 
 
             alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
 
             alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
 
             depthTest true -enableDepthWrite false
 
             depthTest true -enableDepthWrite false
           
+
             colorScalar (0,0,0) 0.25
             colorScalar @color @alpha
+
            ffScaleModelTransform @scale
+
            fillmode $stdMatFillMode
+
  
 
             stage
 
             stage
              texture $stdMatEnvCubeTextureName -alphaFalloffCubeMap 64 (0, 1, 0) (-30, 255) 5
+
               textureTransformType vector3 homogeneous
              textureMIPFilterHint disabled
+
               textureAddressing clamp clamp
 
+
              texture $reflectionRenderTarget
              ffTextureCoordsSource fromNormal
+
               textureBlend select(texture) select(colorScalar)
               textureTransformType vector3
+
             end
              # 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
 
         end
       else
+
       end
         pass
+
     
          
+
      shader -layer 6     
            # supports global wireframe modes and so forth.
+
         validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
            create NonStandardLighting()
+
         pass -modifiedEachFrameHint
           
+
             shaderProgram -target vertexProgram -method assemble          
            alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
+
            depthTest true -enableDepthWrite false
+
 
+
             shaderProgram -target vertexProgram -method assemble
+
 
               bindConstants 0 -bindingID geomToClip -constantCount 4
 
               bindConstants 0 -bindingID geomToClip -constantCount 4
              bindConstants 10 -bindingID immediateData -data (@scale)
+
               bindConstants 4 -bindingID clipToViewTarget -constantCount 4
               bindConstants 4 -bindingID geomToCamera -constantCount 3
+
 
               shaderSource
 
               shaderSource
 
                   vs_1_1
 
                   vs_1_1
                  def c11, 0,0.5,1,2
 
 
                   dcl_position v0
 
                   dcl_position v0
                   dcl_normal v1
+
                   def c8,    -0.5, -0.5, 1, 1
                   dcl_texcoord v2
+
                   def c9,    0.5,  0.5, 0, 0
                    
+
                   def c10,    0.25, 0.25, 0, 0
                   mul r0.xyz, v0, c10.x
+
                   m4x4 r0,   v0, c0
                   mov r0.w, v0.wwww
+
                   mov oPos, r0
                   m4x4 oPos, r0, c0
+
                  mul r2, c9, r0.w
                   m3x3 oT0.xyz, v1,c4
+
                   mad r4, r0, c8, r2
                    
+
                   rcp r3.x, c4.x                                 
                   mov oT1.xy, v2
+
                   rcp r3.y, c5.y
               endShaderSource
+
                   mov r3.zw, c9.zw
 +
                  mul r3, r3, c10
 +
                  mad r1, r0, r3, r4
 +
                  rcp r1.w, r1.w
 +
                  mul oT0.xy, r1.w, r1.xy
 +
               endShaderSource              
 
             end
 
             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
+
            alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
                  +mul r0.a,t0.a, c1.a
+
            depthTest true -enableDepthWrite false
                  mul r0.a, t1.a, r0.a
+
            colorScalar (0,0,0) 0.25
              endShaderSource
+
            end
+
  
 
+
             stage
             sampler 0
+
              textureAddressing clamp clamp
               texture $stdMatEnvCubeTextureName -alphaFalloffCubeMap 64 (0, 1, 0) (-30, 255) 5
+
               texture $reflectionRenderTarget
              textureMIPFilterHint disabled
+
              textureBlend select(texture) select(colorScalar)
              textureAddressing clamp clamp clamp
+
 
             end
 
             end
 
              
 
              
            sampler 1
 
              texture $stdMatBaseTextureName ${stdMatBaseTextureParam}
 
            end
 
 
         end
 
         end
      endif
 
 
       end
 
       end
      shader
 
      end
 
  end
 
 
enddef
 
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
+
materialDefinition transparent_mirror_reflection
   setDefinition CubeAlphaFalloffTexture
+
   setDefinition TransparentMirrorReflection
  addParam stdMatLayer 13
+
  addParam stdMatEnvCubeTextureName steamSphere_alphaFalloff5
+
  addParam stdMatBaseTextureName effectsFightPuff-alpha
+
 
end
 
end

Latest revision as of 00:44, 9 July 2009

define TransparentMirrorReflection()

  material
     if (viewerRenderType = $kRenderTypeShadow)
        create StandardShaderShadow()
     else
        if (viewerRenderType = $kRenderTypeThumbnail)
           create TransparentBlankMirrorMaterial($kRenderTypeThumbnail)
        else            
           if (not $mirrorReflectionsEnabled)
              set currentType (viewerRenderType)
              create TransparentBlankMirrorMaterial($currentType)
           else
              create TransparentMirrorReflectionMaterial()
           endif            
        endif         
     endif
  end

enddef

define TransparentBlankMirrorMaterial(renderType)

     shader
        validateRenderShaderContext -viewerRenderType  &renderType
        
        pass             
           shaderProgram -target vertexProgram -method assemble
              bindConstants 0 -bindingID geomToClip -constantCount 4
              shaderSource
                 vs_1_1
                 dcl_position v0
                 m4x4 oPos, v0, c0
              endShaderSource
           end
           
           colorScalar (0,0,0) 0.5
           stage
              textureBlend select(colorScalar) select(colorScalar)
           end            
        end
     end      

enddef

define TransparentMirrorReflectionMaterial()

     shader -layer -9998   # this material must render first
        validateRenderShaderContext -viewerRenderType $kRenderTypeMirror  # reflection render
        pass -renderEachFrame
           renderTarget $reflectionRenderTarget -setViewport viewportFromParentRenderContext
           depthTest true -enableDepthWrite true
           applyStencilStateForOverlappingReflections
           alphaBlend srcFactor(zero) add dstFactor(one)
           cullmode none
           shaderProgram -target vertexProgram -method assemble            
              bindConstants 0 -bindingID geomToClipFromParentView -constantCount 4
              shaderSource
                 vs_1_1
                 dcl_position v0
                 def c5, 1,0,0,1
                 m4x4 r0,   v0,  c0
                 mov oPos.x,  -r0
                 mov oPos.yzw, r0                  
              endShaderSource
           end
        end
     end
     shader -layer 6
        validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
        pass -modifiedEachFrameHint
           shaderProgram -target vertexProgram -method assemble            
              bindConstants 0 -bindingID geomToClip -constantCount 4
              bindConstants 4 -bindingID clipToViewTarget -constantCount 4
              shaderSource
                 vs_1_1
                 dcl_position v0
                 def c8,    -0.5, -0.5, 1, 1
                 def c9,     0.5,  0.5, 0, 0 
                 def c10,    0.25, 0.25, 0, 0
                 m4x4 r0,   v0,  c0
                 mov oPos, r0
                 mul r2, c9, r0.w
                 mad r4, r0, c8, r2
                 rcp r3.x, c4.x                                   
                 rcp r3.y, c5.y
                 mov r3.zw, c9.zw
                 mul r3, r3, c10
                 mad r6, r0, r3, r4
                 mov oT0, r6.xyww
              endShaderSource               
           end
           alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
           depthTest true -enableDepthWrite false
           colorScalar (0,0,0) 0.25
           stage
              textureTransformType vector3 homogeneous
              textureAddressing clamp clamp
              texture $reflectionRenderTarget
              textureBlend select(texture) select(colorScalar)
           end
                      
        end
     end
     
     shader -layer 6      
        validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
        pass -modifiedEachFrameHint
           shaderProgram -target vertexProgram -method assemble            
              bindConstants 0 -bindingID geomToClip -constantCount 4
              bindConstants 4 -bindingID clipToViewTarget -constantCount 4
              shaderSource
                 vs_1_1
                 dcl_position v0
                 def c8,    -0.5, -0.5, 1, 1
                 def c9,     0.5,  0.5, 0, 0
                 def c10,    0.25, 0.25, 0, 0
                 m4x4 r0,   v0,  c0
                 mov oPos, r0
                 mul r2, c9, r0.w
                 mad r4, r0, c8, r2
                 rcp r3.x, c4.x                                   
                 rcp r3.y, c5.y
                 mov r3.zw, c9.zw
                 mul r3, r3, c10
                 mad r1, r0, r3, r4
                 rcp r1.w, r1.w
                 mul oT0.xy, r1.w, r1.xy
              endShaderSource               
           end
           alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
           depthTest true -enableDepthWrite false
           colorScalar (0,0,0) 0.25
           stage
              textureAddressing clamp clamp
              texture $reflectionRenderTarget
              textureBlend select(texture) select(colorScalar)
           end
           
        end
     end

enddef

  1. ---------------------------------------------------------------------------------------------------------------#

materialDefinition transparent_mirror_reflection

  setDefinition TransparentMirrorReflection

end

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox