Difference between revisions of "TEST-STRCMP4CODES"
From SimsWiki
| (57 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | define TransparentMirrorReflection() | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | define | + | |
material | 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 | |
| − | colorScalar (0 | + | end |
| − | + | end | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | end | + | |
| − | end | + | |
| − | + | ||
enddef | enddef | ||
| − | + | define TransparentMirrorReflectionMaterial() | |
| − | + | ||
| − | define | + | |
| − | + | ||
| − | + | ||
| − | # | + | 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 | ||
| − | |||
| − | |||
| − | |||
| − | |||
end | end | ||
| − | |||
enddef | enddef | ||
| − | + | #---------------------------------------------------------------------------------------------------------------# | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | materialDefinition | + | materialDefinition transparent_mirror_reflection |
| − | + | setDefinition TransparentMirrorReflection | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | setDefinition | + | |
end | 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