Difference between revisions of "TEST-STRCMP4CODES"
From SimsWiki
(42 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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | 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 | 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 | ||
+ | |||
+ | #---------------------------------------------------------------------------------------------------------------# | ||
+ | |||
+ | materialDefinition transparent_mirror_reflection | ||
+ | setDefinition TransparentMirrorReflection | ||
+ | end |
Latest revision as of 05: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
- ---------------------------------------------------------------------------------------------------------------#
materialDefinition transparent_mirror_reflection
setDefinition TransparentMirrorReflection
end