Difference between revisions of "TEST-STRCMP4CODES"

From SimsWiki
Jump to: navigation, search
 
(27 intermediate revisions by one user not shown)
Line 1: Line 1:
define LotSkirtWater()
+
define TransparentMirrorReflection()
material    
+
  material
create DetermineHardwareSupport()
+
      if (viewerRenderType = $kRenderTypeShadow)
 
+
        create StandardShaderShadow()
if ($useHWShader2Path)
+
      else
create LotSkirtPSWater()
+
        if (viewerRenderType = $kRenderTypeThumbnail)
else
+
            create TransparentBlankMirrorMaterial($kRenderTypeThumbnail)
 
+
        else          
shader -layer $nhoodWaterLayer
+
            if (not $mirrorReflectionsEnabled)
validateRenderShaderContext -vertexFormat  position      0 required
+
              set currentType (viewerRenderType)
validateRenderShaderContext -vertexFormat  normal        0 required
+
              create TransparentBlankMirrorMaterial($currentType)
validateRenderShaderContext -vertexFormat  texcoord      0 required
+
            else
viewerRenderTypePred viewerRenderType
+
              create TransparentMirrorReflectionMaterial()
           
+
            endif           
pass -fixedFunction
+
        endif       
   
+
      endif
alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
+
colorScalar $lotSkirtWaterReflColour 0.50
+
depthTest true -enableDepthWrite false                       
+
   
+
#tring to remove warble I think it may be caused by depth bias.
+
#ffDepthOffset -2
+
   
+
stage
+
ffTextureCoordsSource fromPosition
+
ffTextureMatrix -cameraToClip -scalev ((-0.5 * $ratioW), (-0.5 * $ratioH)) -trans (0.5, 0.5)
+
textureAddressing clamp clamp
+
texture "ScreenReflection"
+
       
+
textureBlend multiply(texture colorScalar) multiply(diffuse colorScalar)
+
end               
+
               
+
end
+
end   
+
endif  
+
 
   end
 
   end
 
enddef
 
enddef
  
define LotSkirtWaterNoReflection()
+
define TransparentBlankMirrorMaterial(renderType)
  material
+
       shader
      # fallback: no reflection.
+
         validateRenderShaderContext -viewerRenderType &renderType
       shader -layer ($nhoodWaterLayer)
+
         viewerRenderTypePred viewerRenderType
+
 
          
 
          
         create DetermineHardwareSupport()
+
         pass           
       
+
            shaderProgram -target vertexProgram -method assemble
        pass -fixedFunction
+
              bindConstants 0 -bindingID geomToClip -constantCount 4
  # For now, we are diabling the lighting since we simply want to use the vertex colors.
+
              shaderSource
  create LightingStatesNoStdLightsParam(false true)
+
                  vs_1_1
  alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
+
                  dcl_position v0
 
+
                  m4x4 oPos, v0, c0
            colorScalar (.4, .6, .9, .4)     
+
              endShaderSource
 +
            end
 
              
 
              
             #tring to remove warble I think it may be caused by depth bias.
+
             colorScalar (0,0,0) 0.5
            #ffDepthOffset -2                             
+
           
+
            fillmode $stdMatFillMode
+
 
             stage
 
             stage
               #texture reflectionoutdoorwater-envcube
+
               textureBlend select(colorScalar) select(colorScalar)
              if ($cubeMapSupport)
+
            end           
                  texture $skyboxCubeMap
+
        end
                  textureMIPFilterHint disabled
+
      end     
 +
enddef
  
                  ffTextureCoordsSource fromReflectionVector
+
define TransparentMirrorReflectionMaterial()
                  ffTextureMatrix -orientCameraToGlobal
+
     
 +
      shader -layer -9998  # this material must render first
 +
        validateRenderShaderContext -viewerRenderType $kRenderTypeMirror  # reflection render
  
                   textureAddressing clamp clamp clamp
+
        pass -renderEachFrame
                  textureBlend multiply(texture colorScalar) select(colorScalar)
+
            renderTarget $reflectionRenderTarget -setViewport viewportFromParentRenderContext
               else
+
 
                   textureBlend select(colorScalar) multiply(diffuse colorScalar)
+
            depthTest true -enableDepthWrite true
               endif
+
 
             end
+
            applyStencilStateForOverlappingReflections
         end  
+
 
 +
            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
 
       end
  end             
 
 
enddef
 
enddef
 +
 +
#---------------------------------------------------------------------------------------------------------------#
 +
 +
materialDefinition transparent_mirror_reflection
 +
  setDefinition TransparentMirrorReflection
 +
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