Difference between revisions of "TEST-STRCMP4CODES"

From SimsWiki
Jump to: navigation, search
 
(44 intermediate revisions by one user not shown)
Line 1: Line 1:
#
+
define TransparentMirrorReflection()
# Materials used for lamps, mostly for broken states
+
  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
  
materialDefinition brokenLampSparkFlash
+
define TransparentBlankMirrorMaterial(renderType)
  setDefinition StandardMaterial
+
      shader
  addParam stdMatLayer 5
+
        validateRenderShaderContext -viewerRenderType  &renderType
  addParam stdMatLightingEnabled false
+
       
  addParam stdMatAlphaBlendMode additive
+
        pass           
  addParam stdMatAlphaTestEnabled false
+
            shaderProgram -target vertexProgram -method assemble
  addParam stdMatAlphaMultiplier  3
+
              bindConstants 0 -bindingID geomToClip -constantCount 4
  addParam stdMatBaseTextureAlphaReplicate true
+
              shaderSource
  addParam stdMatDiffCoef (1, 1, 1)
+
                  vs_1_1
  addParam stdMatBaseTextureEnabled true
+
                  dcl_position v0
  addParam stdMatBaseTextureName fireflyParticle-alpha
+
                  m4x4 oPos, v0, c0
  addParam stdMatEmissiveCoef (1, 1, 1)
+
              endShaderSource
  addParam stdMatBaseTextureAddressingU clamp
+
            end
  addParam stdMatBaseTextureAddressingV clamp
+
           
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
  
materialDefinition sparks
+
        pass -renderEachFrame
  setDefinition StandardMaterial
+
            renderTarget $reflectionRenderTarget -setViewport viewportFromParentRenderContext
  addParam stdMatLayer 5
+
  addParam stdMatLightingEnabled false
+
  addParam stdMatAlphaBlendMode additive
+
  addParam stdMatAlphaTestEnabled false
+
  addParam stdMatAlphaMultiplier  3
+
  addParam stdMatBaseTextureAlphaReplicate true
+
  addParam stdMatDiffCoef (0.85, 0.7, .46)
+
  addParam stdMatBaseTextureEnabled true
+
  addParam stdMatBaseTextureName fireflyParticle-alpha
+
  addParam stdMatEmissiveCoef (0.8,0.56, .46)
+
  addParam stdMatBaseTextureAddressingU clamp
+
  addParam stdMatBaseTextureAddressingV clamp
+
end
+
  
 +
            depthTest true -enableDepthWrite true
  
materialDefinition brokenLampSmoke2
+
            applyStencilStateForOverlappingReflections
  setDefinition StandardMaterial
+
  addParam stdMatLayer 9
+
  addParam stdMatLightingEnabled false
+
  addParam stdMatAlphaBlendMode blend
+
  addParam stdMatAlphaTestEnabled false
+
  addParam stdMatAlphaMultiplier  0.08
+
  addParam stdMatBaseTextureAlphaReplicate false
+
  addParam stdMatDiffCoef (0.85, 0.7, .46)
+
  addParam stdMatBaseTextureEnabled true
+
  addParam stdMatBaseTextureName brokenLampSmoke
+
  addParam stdMatEmissiveCoef (0.8,0.56, .46)
+
  addParam stdMatBaseTextureAddressingU clamp
+
  addParam stdMatBaseTextureAddressingV clamp
+
end
+
  
 +
            alphaBlend srcFactor(zero) add dstFactor(one)
  
materialDefinition brokenLampSmoke
+
            cullmode none
  setDefinition StandardMaterial
+
  addParam stdMatLayer 15
+
  addParam stdMatLightingEnabled false
+
  addParam stdMatAlphaBlendMode blend
+
  addParam stdMatAlphaTestEnabled false
+
  addParam stdMatAlphaMultiplier  0.1
+
  addParam stdMatBaseTextureAlphaReplicate false
+
  addParam stdMatDiffCoef (.388, .312, .204)
+
  addParam stdMatBaseTextureEnabled true
+
  addParam stdMatBaseTextureName brokenLampSmoke
+
  addParam stdMatEmissiveCoef (388, .312, .204)
+
  addParam stdMatBaseTextureAddressingU clamp
+
  addParam stdMatBaseTextureAddressingV clamp
+
end
+
  
 +
            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
  
materialDefinition brokenLampFlash
+
      shader -layer 6
  setDefinition StandardMaterial
+
        validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
  addParam stdMatLayer 19
+
        pass -modifiedEachFrameHint
  addParam stdMatLightingEnabled false
+
            shaderProgram -target vertexProgram -method assemble           
  addParam stdMatAlphaBlendMode additive
+
              bindConstants 0 -bindingID geomToClip -constantCount 4
  addParam stdMatAlphaTestEnabled false
+
              bindConstants 4 -bindingID clipToViewTarget -constantCount 4
  addParam stdMatAlphaMultiplier  3
+
              shaderSource
  addParam stdMatBaseTextureAlphaReplicate true
+
                  vs_1_1
   addParam stdMatDiffCoef (1, 1, 1)
+
                  dcl_position v0
  addParam stdMatBaseTextureEnabled true
+
                  def c8,   -0.5, -0.5, 1, 1
   addParam stdMatBaseTextureName brokenlampflash-alpha
+
                  def c9,    0.5,  0.5, 0, 0
  addParam stdMatEmissiveCoef (1, 1, 1)
+
                  def c10,   0.25, 0.25, 0, 0
  addParam stdMatBaseTextureAddressingU clamp
+
                  m4x4 r0,   v0, c0
  addParam stdMatBaseTextureAddressingV clamp
+
                  mov oPos, r0
end
+
                  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
  
materialDefinition brokenLampElectricalArcs
+
            stage
  setDefinition StandardMaterial
+
              textureTransformType vector3 homogeneous
  addParam stdMatLayer 13
+
              textureAddressing clamp clamp
  addParam stdMatLightingEnabled false
+
              texture $reflectionRenderTarget
  addParam stdMatAlphaBlendMode additive
+
              textureBlend select(texture) select(colorScalar)
  addParam stdMatAlphaTestEnabled false
+
            end
  addParam stdMatAlphaMultiplier  3
+
                     
  addParam stdMatBaseTextureAlphaReplicate true
+
        end
   addParam stdMatDiffCoef (1, 1, 1)
+
      end
  addParam stdMatBaseTextureEnabled true
+
     
   addParam stdMatBaseTextureName brokenlampelectricalarcs
+
      shader -layer 6     
  addParam stdMatEmissiveCoef (1, 1, 1)
+
        validateRenderShaderContext -viewerRenderType $kRenderTypeNormal
  addParam stdMatBaseTextureAddressingU clamp
+
        pass -modifiedEachFrameHint
   addParam stdMatBaseTextureAddressingV clamp
+
            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
 +
 
 +
#---------------------------------------------------------------------------------------------------------------#
 +
 
 +
materialDefinition transparent_mirror_reflection
 +
   setDefinition TransparentMirrorReflection
 
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