Difference between revisions of "TEST-STRCMP4CODES"

From SimsWiki
Jump to: navigation, search
Line 1: Line 1:
EP0-TS2
+
EP6-BV
 
0xCD7FE87A
 
0xCD7FE87A
 
0x1C0532FA
 
0x1C0532FA
Line 7: Line 7:
  
 
#
 
#
# Various material definitions for the ContentViewer.
+
# Material configuration file for ContentViewer
 
#
 
#
  
# note: don't check this in -- seems to cause a crash if
+
version 2
# you don't have the debugger set up correctly
+
#enableShaderProgramDebugging -vertex
+
  
# anything extra needed by the contentviewer should be moved
+
ignoreErrors true
# from config.matShad to common.matShad.
+
#include "config.matshad"
+
  
# Lab extension stuff
+
flushMaterials
 
+
define ShowRenderTypeMaterial()
+
  material
+
      shader
+
        viewerRenderTypePred viewerRenderType
+
  
        pass -fixedFunction           
+
#include "debugging_support.matShad"  # uncomment for debug configuration settings
            ffMatCoef -diff (1, 0, 0)
+
            seti rt (viewerRenderType + 1)
+
            setc rtColor ((floor($rt / 4) % 2), (floor($rt / 2) % 2), (floor($rt) % 2))
+
            ffMatCoef -diff $rtColor
+
            create LightingStates()
+
           
+
            stage
+
              textureBlend select(diffuse) select(diffuse)
+
            end
+
        end
+
      end
+
  end
+
enddef
+
  
define TestGlow-AsmVertexProgram(numPass)
+
setb isContentViewer true
  vertexFormatPred position 0 true
+
  
  shaderProgram -target vertexProgram -method assemble
+
# Common definition files. Please put all materials
      bindConstants 0 -bindingID geomToCamera -constantCount 3
+
# shared by the game and content viewer here.
      bindConstants 3 -bindingID cameraToClip -constantCount 4
+
include "common.matShad"
  
      shaderSource
+
# Content-viewer specific
        vs_1_1
+
include "contentViewer.matShad"
        dcl_position v0
+
        dcl_normal  v1
+
  
        def c7,$color,0
+
bindMaterials
        def c8,$offset,0
+
        def c9,$glowOffset,0
+
        def c10,$glowColor
+
        def c11, &{numPass},&{numPass},&{numPass},0
+
       
+
        add r0, v0, c8    ; add the offset
+
       
+
        ; add the glow offset along the normal
+
        mov  r1, c9
+
        mov  r2, v1
+
        mul  r0, c11, r1  ; numPass * glowOffset
+
        mad  r0, r2, r0, v0 ; (numPass * glowOffset * normal) + pos
+
        add  r0, r0, c8    ; (numPass * glowOffset * normal) + pos + offset
+
       
+
        m4x3 r1.xyz, r0, c0
+
        mov  r1.w,  v0.w
+
        m4x4 oPos,  r1, c3
+
        mov  r2,    c7
+
        add  oD0,    r2, c10
+
      endShaderSource
+
  end
+
enddef
+
 
+
define SimpleVS()
+
  # vertex program
+
  shaderProgram -target vertexProgram -method assemble
+
      bindConstants 0 -bindingID geomToCamera -constantCount 3
+
      bindConstants 3 -bindingID cameraToClip -constantCount 4
+
     
+
      shaderSource
+
        vs_1_1
+
        dcl_position v0
+
       
+
        def c7,$color
+
       
+
        m4x3 r1.xyz, v0, c0
+
        mov  r1.w,  v0.w
+
       
+
        m4x4 oPos,  r1, c3       
+
        mov  oD0,    c7
+
      endShaderSource
+
  end
+
enddef
+
 
+
define SimplePS()       
+
  # pixel program
+
  shaderProgram -target pixelProgram -method assemble
+
      shaderSource
+
        ps_1_1
+
        mov r0, v0
+
      endShaderSource
+
  end
+
enddef
+
 
+
setb glowEnabled false
+
define MaterialWithGlow()
+
# test material for glow effect
+
  seti maxRenderTargets (queryIntegerGraphicsDeviceCap(numSimultaneousRTs))
+
 
+
  material
+
      shader
+
        if ($maxRenderTargets > 1) # MRTs allowed, write out two color values in a single pass       
+
            pass
+
              renderTarget viewerRenderTarget -colorBuffers 2  # use two of the color buffers from the glow texture
+
              vertexFormatPred position 0 true
+
             
+
              # vertex program
+
              shaderProgram -target vertexProgram -method assemble
+
                  bindConstants 0 -bindingID geomToCamera -constantCount 3
+
                  bindConstants 3 -bindingID cameraToClip -constantCount 4
+
                 
+
                  shaderSource
+
                    vs_3_0
+
                    dcl_position v0
+
                    dcl_position0 o0
+
                    dcl_color o1
+
                   
+
                    def c7,$color
+
                   
+
                    m4x3 r1.xyz, v0, c0
+
                    mov  r1.w,  v0.w
+
                   
+
                    m4x4 o0,  r1, c3       
+
                    mov  o1,  c7
+
                  endShaderSource
+
              end
+
             
+
              # pixel program
+
              shaderProgram -target pixelProgram -method assemble
+
                  shaderSource
+
                    ps_3_0
+
                   
+
                    dcl_color v0
+
                    mov oC0, v0
+
                    mov oC1, v0
+
                  endShaderSource
+
              end
+
            end
+
        else  # only one render target allowed, use two passes
+
            if ($glowEnabled)
+
              pass # 1
+
                  # render object to glow buffer
+
                  renderTarget viewerRenderTarget
+
                 
+
                  vertexFormatPred position 0 true             
+
                  create SimpleVS()
+
                  create SimplePS()
+
              end
+
            endif       
+
       
+
            pass # 2
+
              # render object to backbuffer
+
              # Note: The backbuffer rendering pass should generally come after
+
              # all passes that render to other textures.
+
              # This is so that the render target is set to the backbuffer for
+
              # the next object to be rendered (which may not explicitly set it).
+
              renderTarget viewerCompositingTarget
+
             
+
              vertexFormatPred position 0 true           
+
              create SimpleVS()
+
              create SimplePS()
+
            end
+
        endif
+
      end
+
  end
+
enddef
+
 
+
 
+
if (not varExists(mvMaterialDefinition))
+
  set mvMaterialDefinition  StandardMaterial
+
endif
+
 
+
materialDefinition MVLab-CubeMat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef (0, 0, 1)
+
end
+
 
+
materialDefinition "MVLab-SphereMat"
+
  setDefinition $mvMaterialDefinition
+
end
+
 
+
materialDefinition "MVLab-ConeMat"
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef (1, 0.5, 0)
+
end
+
 
+
materialDefinition MVLab-CylinderMat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef (1, 1, 0)
+
end
+
 
+
materialDefinition MVLab-MeshMat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef (0, 0, 1) 
+
end
+
 
+
materialDefinition MVLab-CylinderTopMat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $blue
+
end
+
 
+
materialDefinition MVLab-CylinderBottomMat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $blue
+
end
+
 
+
materialDefinition MVLab-CylinderPanel0Mat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $green
+
end
+
 
+
materialDefinition MVLab-CylinderPanel1Mat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $yellow
+
end
+
 
+
materialDefinition MVLab-CylinderPanel2Mat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $purple
+
end
+
 
+
materialDefinition MVLab-CylinderPanel3Mat
+
  setDefinition $mvMaterialDefinition
+
  addParam stdMatDiffCoef $red
+
end
+
 
+
 
+
 
+
 
+
##############################################################
+
# Render to texture stuff
+
#
+
set mvAspect 1
+
set mvOffset ((1 - $mvAspect) / 2)
+
 
+
define MVLab-RenderToTexture()
+
  material
+
      shader
+
        vertexFormatPred position 0 true
+
 
+
        pass -fixedFunction
+
            create LightingStatesNoStdLights()
+
            colorScalar (0.8, 0.8, 1, 1)
+
 
+
            stage
+
              texture "MVLab-RenderTargetTexture"
+
 
+
              textureFilterHint bilinear bilinear
+
              textureMIPFilterHint disabled
+
              textureAddressing clamp clamp clamp
+
           
+
              ffTextureMatrix -scalev (1, $mvAspect) -trans (0, $mvOffset)
+
              textureTransformType vector2
+
             
+
              textureBlend multiply(texture colorScalar) select(texture)
+
            end
+
        end
+
      end
+
  end
+
enddef
+
 
+
#
+
# Doesn't perform any reflection itself -- merely texture maps
+
# a screen-size texture onto geometry.
+
#
+
 
+
# TODO: we should set a script variable or predicate
+
# if hardware vertex shaders are not available.
+
 
+
define MVLab-RenderToTextureReflection()
+
  material
+
      shader
+
        vertexFormatPred position 0 true
+
 
+
        pass -fixedFunction
+
           
+
            colorScalar (0.8, 0.8, 1, 1)
+
           
+
            stage
+
              ffTextureCoordsSource fromPosition
+
              ffTextureMatrix -cameraToClip -scalev (-0.5, (0.5 * -$mvAspect)) -trans (0.5, 0.5)
+
              textureTransformType vector4 homogeneous
+
           
+
              texture  "MVLab-RenderTargetTexture"
+
              textureBlend multiply(texture colorScalar) select(texture)
+
            end
+
        end
+
      end
+
  end
+
enddef
+
 
+
 
+
#
+
# Used to clear the glow render target texture.
+
# by varying 'feedback', you control how much of
+
# the previous frame feeds through into the current.
+
#
+
setf feedback 0.5
+
define MVLab-Dimmer()
+
  material
+
      shader -layer -31
+
        vertexFormatPred position 0 true
+
 
+
+
        pass                       
+
            shaderProgram -target vertexProgram -method assemble
+
       
+
bindConstants 0 -bindingID immediateData -data (((1 - $mvAspect) / 2), $mvAspect, 1, 1)   
+
+
shaderSource
+
+
vs_1_1
+
dcl_position0 v0
+
dcl_texcoord0 v1
+
 
+
mov r0.x, -v0.x
+
mov r0.y, v0.z
+
mov r0.zw, c0
+
                                   
+
mov oPos, r0
+
 
+
mov oT0.x, v1.x
+
mul r0.y, v1.y, c0.y
+
add oT0.y, r0.y, c0.x
+
               
+
endShaderSource
+
+
            end
+
 
+
            colorScalar (0, 0, 0, (1 - $feedback))
+
            cullmode none
+
            depthTest false
+
           
+
            alphaBlend srcFactor(srcAlpha) add dstFactor(invSrcAlpha)
+
            stage
+
              textureBlend select(colorScalar) select(colorScalar)
+
            end
+
        end
+
      end
+
  end
+
enddef
+
 
+
 
+
 
+
materialDefinition MVLab-RenderTargetMaterial
+
  setDefinition MVLab-RenderToTexture
+
end
+
 
+
materialDefinition MVLab-RenderTargetReflectionMaterial
+
  setDefinition MVLab-RenderToTextureReflection
+
end
+
 
+
materialDefinition MVLab-RenderTargetGlowMaterial
+
  setDefinition MVLab-Dimmer
+
  addParam feedback 0.8
+
end
+
 
+
materialDefinition MVLab-DimmerMaterial
+
  setDefinition MVLab-Dimmer
+
  addParam feedback 0.8
+
end
+
 
+
# Test of skybox compositing pass.
+
materialDefinition MVLab-CompositingPass0Material
+
  setDefinition SkyboxCompositionPassMaterial
+
  addParam skyboxCubeTexture reflectionoutdoorwater-envcube
+
end
+
 
+
materialDefinition MVLab-LightingTest
+
  setDefinition StandardMaterial
+
  addParam stdMatDiffCoef (0.5, 0.5, 0.5)
+
end
+

Revision as of 03:54, 7 September 2007

EP6-BV 0xCD7FE87A 0x1C0532FA 0x59C623B0 0xFF886B27

  1. contentviewer
  1. Material configuration file for ContentViewer

version 2

ignoreErrors true

flushMaterials

  1. include "debugging_support.matShad" # uncomment for debug configuration settings

setb isContentViewer true

  1. Common definition files. Please put all materials
  2. shared by the game and content viewer here.

include "common.matShad"

  1. Content-viewer specific

include "contentViewer.matShad"

bindMaterials

Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox