[889] | 1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
---|
| 2 | <!DOCTYPE RENDER_MONKEY [
|
---|
| 3 | <!ELEMENT RENDER_MONKEY
|
---|
| 4 | (
|
---|
| 5 | RmEffectWorkspace |
|
---|
| 6 | RmRegistryBranch |
|
---|
| 7 | RmClipboardNode
|
---|
| 8 | )?>
|
---|
| 9 |
|
---|
| 10 | <!ELEMENT RmEffectWorkspace
|
---|
| 11 | (
|
---|
| 12 | RmRegistryBranch?,
|
---|
| 13 | RmPlugInData?,
|
---|
| 14 | RmStringVariable*,
|
---|
| 15 | (
|
---|
| 16 | ( RmDirectXEffect, RmOpenGLEffect? ) |
|
---|
| 17 | ( RmOpenGLEffect, RmDirectXEffect? )
|
---|
| 18 | )?,
|
---|
| 19 | (
|
---|
| 20 | RmBooleanVariable |
|
---|
| 21 | RmIntegerVariable |
|
---|
| 22 | RmFloatVariable |
|
---|
| 23 | RmVectorVariable |
|
---|
| 24 | RmMatrixVariable |
|
---|
| 25 | RmDynamicVariable |
|
---|
| 26 | RmColorVariable |
|
---|
| 27 | Rm2DTextureVariable |
|
---|
| 28 | RmCubemapVariable |
|
---|
| 29 | Rm3DTextureVariable |
|
---|
| 30 | RmLightVariable |
|
---|
| 31 | RmMaterialVariable |
|
---|
| 32 | RmRenderableTexture |
|
---|
| 33 | RmStreamMap |
|
---|
| 34 | RmModelData |
|
---|
| 35 | RmEffectGroup
|
---|
| 36 | )*
|
---|
| 37 | )>
|
---|
| 38 |
|
---|
| 39 | <!ELEMENT RmEffectGroup
|
---|
| 40 | (
|
---|
| 41 | RmPlugInData?,
|
---|
| 42 | (
|
---|
| 43 | RmStringVariable |
|
---|
| 44 | RmDirectXEffect |
|
---|
| 45 | RmOpenGLEffect |
|
---|
| 46 | RmBooleanVariable |
|
---|
| 47 | RmIntegerVariable |
|
---|
| 48 | RmFloatVariable |
|
---|
| 49 | RmVectorVariable |
|
---|
| 50 | RmMatrixVariable |
|
---|
| 51 | RmDynamicVariable |
|
---|
| 52 | RmColorVariable |
|
---|
| 53 | Rm2DTextureVariable |
|
---|
| 54 | RmCubemapVariable |
|
---|
| 55 | Rm3DTextureVariable |
|
---|
| 56 | RmLightVariable |
|
---|
| 57 | RmMaterialVariable |
|
---|
| 58 | RmRenderableTexture |
|
---|
| 59 | RmStreamMap |
|
---|
| 60 | RmModelData
|
---|
| 61 | )*
|
---|
| 62 | )>
|
---|
| 63 |
|
---|
| 64 | <!ELEMENT RmDirectXEffect
|
---|
| 65 | (
|
---|
| 66 | RmPlugInData?,
|
---|
| 67 | (
|
---|
| 68 | RmStringVariable |
|
---|
| 69 | RmCamera |
|
---|
| 70 | RmBooleanVariable |
|
---|
| 71 | RmIntegerVariable |
|
---|
| 72 | RmFloatVariable |
|
---|
| 73 | RmVectorVariable |
|
---|
| 74 | RmMatrixVariable |
|
---|
| 75 | RmDynamicVariable |
|
---|
| 76 | RmColorVariable |
|
---|
| 77 | Rm2DTextureVariable |
|
---|
| 78 | RmCubemapVariable |
|
---|
| 79 | Rm3DTextureVariable |
|
---|
| 80 | RmLightVariable |
|
---|
| 81 | RmMaterialVariable |
|
---|
| 82 | RmRenderableTexture |
|
---|
| 83 | RmStreamMap |
|
---|
| 84 | RmModelData |
|
---|
| 85 | RmPass
|
---|
| 86 | )*
|
---|
| 87 | )>
|
---|
| 88 |
|
---|
| 89 | <!ELEMENT RmOpenGLEffect
|
---|
| 90 | (
|
---|
| 91 | RmPlugInData?,
|
---|
| 92 | (
|
---|
| 93 | RmStringVariable |
|
---|
| 94 | RmCamera |
|
---|
| 95 | RmBooleanVariable |
|
---|
| 96 | RmIntegerVariable |
|
---|
| 97 | RmFloatVariable |
|
---|
| 98 | RmVectorVariable |
|
---|
| 99 | RmMatrixVariable |
|
---|
| 100 | RmDynamicVariable |
|
---|
| 101 | RmColorVariable |
|
---|
| 102 | Rm2DTextureVariable |
|
---|
| 103 | RmCubemapVariable |
|
---|
| 104 | Rm3DTextureVariable |
|
---|
| 105 | RmLightVariable |
|
---|
| 106 | RmMaterialVariable |
|
---|
| 107 | RmRenderableTexture |
|
---|
| 108 | RmStreamMap |
|
---|
| 109 | RmModelData |
|
---|
| 110 | RmGLPass
|
---|
| 111 | )*
|
---|
| 112 | )>
|
---|
| 113 |
|
---|
| 114 | <!ELEMENT RmPass
|
---|
| 115 | (
|
---|
| 116 | RmPlugInData?,
|
---|
| 117 | RmStringVariable*,
|
---|
| 118 | RmCameraReference?,
|
---|
| 119 | RmModelReference?,
|
---|
| 120 | RmRenderStateBlock?,
|
---|
| 121 | (
|
---|
| 122 | (
|
---|
| 123 | ( RmHLSLShader | RmShader ),
|
---|
| 124 | ( RmShader | RmHLSLShader )?
|
---|
| 125 | )
|
---|
| 126 | )?,
|
---|
| 127 | RmRenderTarget*,
|
---|
| 128 | RmStreamMapReference?,
|
---|
| 129 | (
|
---|
| 130 | RmBooleanVariable |
|
---|
| 131 | RmIntegerVariable |
|
---|
| 132 | RmFloatVariable |
|
---|
| 133 | RmVectorVariable |
|
---|
| 134 | RmMatrixVariable |
|
---|
| 135 | RmDynamicVariable |
|
---|
| 136 | RmColorVariable |
|
---|
| 137 | Rm2DTextureVariable |
|
---|
| 138 | RmCubemapVariable |
|
---|
| 139 | Rm3DTextureVariable |
|
---|
| 140 | RmLightVariable |
|
---|
| 141 | RmMaterialVariable |
|
---|
| 142 | RmTextureObject |
|
---|
| 143 | RmLightObject |
|
---|
| 144 | RmMaterialObject
|
---|
| 145 | )*
|
---|
| 146 | )>
|
---|
| 147 |
|
---|
| 148 | <!ELEMENT RmGLPass
|
---|
| 149 | (
|
---|
| 150 | RmPlugInData?,
|
---|
| 151 | RmStringVariable*,
|
---|
| 152 | RmCameraReference?,
|
---|
| 153 | RmModelReference?,
|
---|
| 154 | RmRenderStateBlock?,
|
---|
| 155 | (
|
---|
| 156 | ( RmGLShader, RmGLShader? )
|
---|
| 157 | )?,
|
---|
| 158 | RmRenderTarget?,
|
---|
| 159 | RmStreamMapReference?,
|
---|
| 160 | (
|
---|
| 161 | RmBooleanVariable |
|
---|
| 162 | RmIntegerVariable |
|
---|
| 163 | RmFloatVariable |
|
---|
| 164 | RmVectorVariable |
|
---|
| 165 | RmMatrixVariable |
|
---|
| 166 | RmDynamicVariable |
|
---|
| 167 | RmColorVariable |
|
---|
| 168 | Rm2DTextureVariable |
|
---|
| 169 | RmCubemapVariable |
|
---|
| 170 | Rm3DTextureVariable |
|
---|
| 171 | RmLightVariable |
|
---|
| 172 | RmMaterialVariable |
|
---|
| 173 | RmTextureObject |
|
---|
| 174 | RmLightObject |
|
---|
| 175 | RmMaterialObject |
|
---|
| 176 | RmShaderConstant |
|
---|
| 177 | RmSampler
|
---|
| 178 | )*
|
---|
| 179 | )>
|
---|
| 180 |
|
---|
| 181 | <!ELEMENT RmShader
|
---|
| 182 | (
|
---|
| 183 | RmShaderCode,
|
---|
| 184 | RmPlugInData?,
|
---|
| 185 | (
|
---|
| 186 | RmStringVariable |
|
---|
| 187 | RmShaderConstant
|
---|
| 188 | )*
|
---|
| 189 | )>
|
---|
| 190 |
|
---|
| 191 | <!ELEMENT RmHLSLShader
|
---|
| 192 | (
|
---|
| 193 | RmShaderCode,
|
---|
| 194 | RmPlugInData?,
|
---|
| 195 | (
|
---|
| 196 | RmStringVariable |
|
---|
| 197 | RmShaderConstant |
|
---|
| 198 | RmSampler
|
---|
| 199 | )*
|
---|
| 200 | )>
|
---|
| 201 |
|
---|
| 202 | <!ELEMENT RmGLShader
|
---|
| 203 | (
|
---|
| 204 | RmShaderCode,
|
---|
| 205 | RmPlugInData?,
|
---|
| 206 | (
|
---|
| 207 | RmStringVariable
|
---|
| 208 | )*
|
---|
| 209 | )>
|
---|
| 210 |
|
---|
| 211 | <!ELEMENT RmTextureObject
|
---|
| 212 | (
|
---|
| 213 | RmPlugInData?,
|
---|
| 214 | RmStringVariable*,
|
---|
| 215 | RmTextureReference?,
|
---|
| 216 | RmState*
|
---|
| 217 | )>
|
---|
| 218 |
|
---|
| 219 | <!ELEMENT RmLightObject
|
---|
| 220 | (
|
---|
| 221 | RmPlugInData?,
|
---|
| 222 | RmStringVariable*,
|
---|
| 223 | RmLightReference?
|
---|
| 224 | )>
|
---|
| 225 |
|
---|
| 226 | <!ELEMENT RmMaterialObject
|
---|
| 227 | (
|
---|
| 228 | RmPlugInData?,
|
---|
| 229 | RmStringVariable*,
|
---|
| 230 | RmMaterialReference?
|
---|
| 231 | )>
|
---|
| 232 |
|
---|
| 233 | <!ELEMENT RmRenderStateBlock
|
---|
| 234 | (
|
---|
| 235 | RmPlugInData?,
|
---|
| 236 | (
|
---|
| 237 | RmStringVariable |
|
---|
| 238 | RmState
|
---|
| 239 | )*
|
---|
| 240 | )>
|
---|
| 241 |
|
---|
| 242 | <!ELEMENT RmStreamMap
|
---|
| 243 | (
|
---|
| 244 | RmPlugInData?,
|
---|
| 245 | (
|
---|
| 246 | RmStringVariable |
|
---|
| 247 | RmStream
|
---|
| 248 | )*
|
---|
| 249 | )>
|
---|
| 250 |
|
---|
| 251 | <!ELEMENT RmStream ( RmPlugInData?, RmStreamChannel* )>
|
---|
| 252 |
|
---|
| 253 | <!ELEMENT RmModelData ( RmPlugInData?, RmStringVariable* )>
|
---|
| 254 | <!ELEMENT RmTextureReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 255 | <!ELEMENT RmLightReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 256 | <!ELEMENT RmMaterialReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 257 | <!ELEMENT RmCameraReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 258 | <!ELEMENT RmModelReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 259 | <!ELEMENT RmStreamMapReference ( RmPlugInData?, RmStringVariable* )>
|
---|
| 260 | <!ELEMENT RmRenderableTexture ( RmPlugInData?, RmStringVariable* )>
|
---|
| 261 | <!ELEMENT RmRenderTarget ( RmPlugInData?, RmStringVariable* )>
|
---|
| 262 | <!ELEMENT RmBooleanVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 263 | <!ELEMENT RmFloatVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 264 | <!ELEMENT RmVectorVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 265 | <!ELEMENT RmMatrixVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 266 | <!ELEMENT RmColorVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 267 | <!ELEMENT RmIntegerVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 268 | <!ELEMENT Rm2DTextureVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 269 | <!ELEMENT RmCubemapVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 270 | <!ELEMENT Rm3DTextureVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 271 | <!ELEMENT RmLightVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 272 | <!ELEMENT RmMaterialVariable ( RmPlugInData?, RmStringVariable? )>
|
---|
| 273 | <!ELEMENT RmCamera ( RmPlugInData?, RmStringVariable* )>
|
---|
| 274 |
|
---|
| 275 | <!ELEMENT RmStringVariable ( RmTextDataBlock, RmPlugInData? )>
|
---|
| 276 |
|
---|
| 277 | <!ELEMENT RmDynamicVariable
|
---|
| 278 | (
|
---|
| 279 | RmPlugInData?,
|
---|
| 280 | RmStringVariable?,
|
---|
| 281 | RmDynamicVariableValueContainer
|
---|
| 282 | )>
|
---|
| 283 |
|
---|
| 284 | <!ELEMENT RmDynamicVariableValueContainer
|
---|
| 285 | (
|
---|
| 286 | RmPlugInData?,
|
---|
| 287 | RmDynamicVariableValue*
|
---|
| 288 | )>
|
---|
| 289 |
|
---|
| 290 | <!ELEMENT RmTextDataBlock ( #PCDATA ) >
|
---|
| 291 |
|
---|
| 292 | <!ELEMENT RmRegistryBranch
|
---|
| 293 | (
|
---|
| 294 | RmTextDataBlock?,
|
---|
| 295 | (
|
---|
| 296 | RmRegistryBranch |
|
---|
| 297 | RmStringVariable |
|
---|
| 298 | RmIntegerVariable |
|
---|
| 299 | RmBooleanVariable |
|
---|
| 300 | RmFloatVariable
|
---|
| 301 | )*
|
---|
| 302 | )>
|
---|
| 303 |
|
---|
| 304 | <!ELEMENT RmPlugInData
|
---|
| 305 | (
|
---|
| 306 | RmTextDataBlock?,
|
---|
| 307 | (
|
---|
| 308 | RmStringVariable |
|
---|
| 309 | RmIntegerVariable |
|
---|
| 310 | RmBooleanVariable |
|
---|
| 311 | RmFloatVariable |
|
---|
| 312 | RmVectorVariable
|
---|
| 313 | )*
|
---|
| 314 | )>
|
---|
| 315 |
|
---|
| 316 | <!ELEMENT RmClipboardNode
|
---|
| 317 | (
|
---|
| 318 | RmTextDataBlock?,
|
---|
| 319 | (
|
---|
| 320 | RmEffectWorkspace |
|
---|
| 321 | RmEffectGroup |
|
---|
| 322 | RmDirectXEffect |
|
---|
| 323 | RmOpenGLEffect |
|
---|
| 324 | RmPass |
|
---|
| 325 | RmGLPass |
|
---|
| 326 | RmShader |
|
---|
| 327 | RmHLSLShader |
|
---|
| 328 | RmGLShader |
|
---|
| 329 | RmShaderConstant |
|
---|
| 330 | RmSampler |
|
---|
| 331 | RmTextureObject |
|
---|
| 332 | RmLightObject |
|
---|
| 333 | RmMaterialObject |
|
---|
| 334 | RmRenderStateBlock |
|
---|
| 335 | RmState |
|
---|
| 336 | RmStreamMap |
|
---|
| 337 | RmStream |
|
---|
| 338 | RmStreamChannel |
|
---|
| 339 | RmModelData |
|
---|
| 340 | RmTextureReference |
|
---|
| 341 | RmLightReference |
|
---|
| 342 | RmMaterialReference |
|
---|
| 343 | RmModelReference |
|
---|
| 344 | RmStreamMapReference |
|
---|
| 345 | RmRenderableTexture |
|
---|
| 346 | RmRenderTarget |
|
---|
| 347 | RmBooleanVariable |
|
---|
| 348 | RmFloatVariable |
|
---|
| 349 | RmVectorVariable |
|
---|
| 350 | RmMatrixVariable |
|
---|
| 351 | RmDynamicVariable |
|
---|
| 352 | RmDynamicVariableValue |
|
---|
| 353 | RmColorVariable |
|
---|
| 354 | RmIntegerVariable |
|
---|
| 355 | RmStringVariable |
|
---|
| 356 | Rm2DTextureVariable |
|
---|
| 357 | RmCubemapVariable |
|
---|
| 358 | Rm3DTextureVariable |
|
---|
| 359 | RmLightVariable |
|
---|
| 360 | RmMaterialVariable |
|
---|
| 361 | RmRegistryBranch |
|
---|
| 362 | RmPlugInData |
|
---|
| 363 | RmCamera |
|
---|
| 364 | RmCameraReference
|
---|
| 365 | )*
|
---|
| 366 | )>
|
---|
| 367 |
|
---|
| 368 | <!ELEMENT RmStreamChannel ( RmPlugInData? ) >
|
---|
| 369 | <!ELEMENT RmShaderConstant ( RmPlugInData? ) >
|
---|
| 370 | <!ELEMENT RmSampler ( RmPlugInData? ) >
|
---|
| 371 | <!ELEMENT RmState ( RmPlugInData? ) >
|
---|
| 372 | <!ELEMENT RmDynamicVariableValue ( RmPlugInData? ) >
|
---|
| 373 |
|
---|
| 374 | <!ELEMENT RmShaderCode ( #PCDATA ) >
|
---|
| 375 |
|
---|
| 376 | <!ATTLIST RmEffectWorkspace
|
---|
| 377 | NAME CDATA #REQUIRED
|
---|
| 378 | API CDATA #REQUIRED
|
---|
| 379 | ACTIVE_EFFECT CDATA #REQUIRED
|
---|
| 380 | VALIDATION_STRING CDATA #REQUIRED
|
---|
| 381 | XML_VERSION CDATA #REQUIRED
|
---|
| 382 | >
|
---|
| 383 |
|
---|
| 384 | <!ATTLIST RmEffectGroup
|
---|
| 385 | NAME CDATA #REQUIRED
|
---|
| 386 | API CDATA #REQUIRED
|
---|
| 387 | >
|
---|
| 388 |
|
---|
| 389 | <!ATTLIST RmDirectXEffect
|
---|
| 390 | NAME CDATA #REQUIRED
|
---|
| 391 | API CDATA #REQUIRED
|
---|
| 392 | ACTIVE_CAMERA CDATA #REQUIRED
|
---|
| 393 | >
|
---|
| 394 |
|
---|
| 395 | <!ATTLIST RmOpenGLEffect
|
---|
| 396 | NAME CDATA #REQUIRED
|
---|
| 397 | API CDATA #REQUIRED
|
---|
| 398 | ACTIVE_CAMERA CDATA #REQUIRED
|
---|
| 399 | >
|
---|
| 400 |
|
---|
| 401 | <!ATTLIST RmPass
|
---|
| 402 | NAME CDATA #REQUIRED
|
---|
| 403 | API CDATA #REQUIRED
|
---|
| 404 | PASS_INDEX CDATA #REQUIRED
|
---|
| 405 | ENABLED ( TRUE | FALSE ) #REQUIRED
|
---|
| 406 | >
|
---|
| 407 |
|
---|
| 408 | <!ATTLIST RmGLPass
|
---|
| 409 | NAME CDATA #REQUIRED
|
---|
| 410 | API CDATA #REQUIRED
|
---|
| 411 | PASS_INDEX CDATA #REQUIRED
|
---|
| 412 | ENABLED ( TRUE | FALSE ) #REQUIRED
|
---|
| 413 | >
|
---|
| 414 |
|
---|
| 415 | <!ATTLIST RmShader
|
---|
| 416 | NAME CDATA #REQUIRED
|
---|
| 417 | API CDATA #REQUIRED
|
---|
| 418 | PIXEL_SHADER CDATA #REQUIRED
|
---|
| 419 | >
|
---|
| 420 |
|
---|
| 421 | <!ATTLIST RmHLSLShader
|
---|
| 422 | NAME CDATA #REQUIRED
|
---|
| 423 | API CDATA #REQUIRED
|
---|
| 424 | PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED
|
---|
| 425 | TARGET CDATA #REQUIRED
|
---|
| 426 | ENTRY_POINT CDATA #REQUIRED
|
---|
| 427 | >
|
---|
| 428 |
|
---|
| 429 | <!ATTLIST RmGLShader
|
---|
| 430 | NAME CDATA #REQUIRED
|
---|
| 431 | API CDATA #REQUIRED
|
---|
| 432 | PIXEL_SHADER ( TRUE | FALSE ) #REQUIRED
|
---|
| 433 | >
|
---|
| 434 |
|
---|
| 435 | <!ATTLIST RmShaderConstant
|
---|
| 436 | NAME CDATA #REQUIRED
|
---|
| 437 | API CDATA #REQUIRED
|
---|
| 438 | REGISTER CDATA #REQUIRED
|
---|
| 439 | >
|
---|
| 440 |
|
---|
| 441 | <!ATTLIST RmSampler
|
---|
| 442 | NAME CDATA #REQUIRED
|
---|
| 443 | API CDATA #REQUIRED
|
---|
| 444 | REGISTER CDATA #REQUIRED
|
---|
| 445 | >
|
---|
| 446 |
|
---|
| 447 | <!ATTLIST RmTextureObject
|
---|
| 448 | NAME CDATA #REQUIRED
|
---|
| 449 | API CDATA #REQUIRED
|
---|
| 450 | STATE_INDEX CDATA #REQUIRED
|
---|
| 451 | VERTEX_TEXTURE ( TRUE | FALSE ) #REQUIRED
|
---|
| 452 | >
|
---|
| 453 |
|
---|
| 454 | <!ATTLIST RmLightObject
|
---|
| 455 | NAME CDATA #REQUIRED
|
---|
| 456 | API CDATA #REQUIRED
|
---|
| 457 | INDEX CDATA #REQUIRED
|
---|
| 458 | >
|
---|
| 459 |
|
---|
| 460 | <!ATTLIST RmMaterialObject
|
---|
| 461 | NAME CDATA #REQUIRED
|
---|
| 462 | API CDATA #REQUIRED
|
---|
| 463 | INDEX CDATA #REQUIRED
|
---|
| 464 | >
|
---|
| 465 |
|
---|
| 466 | <!ATTLIST RmRenderStateBlock
|
---|
| 467 | NAME CDATA #REQUIRED
|
---|
| 468 | API CDATA #REQUIRED
|
---|
| 469 | >
|
---|
| 470 |
|
---|
| 471 | <!ATTLIST RmState
|
---|
| 472 | NAME CDATA #REQUIRED
|
---|
| 473 | API CDATA #REQUIRED
|
---|
| 474 | STATE CDATA #REQUIRED
|
---|
| 475 | VALUE CDATA #REQUIRED
|
---|
| 476 | USAGE CDATA #REQUIRED
|
---|
| 477 | >
|
---|
| 478 |
|
---|
| 479 | <!ATTLIST RmStreamMap
|
---|
| 480 | NAME CDATA #REQUIRED
|
---|
| 481 | API CDATA #REQUIRED
|
---|
| 482 | >
|
---|
| 483 |
|
---|
| 484 | <!ATTLIST RmStream
|
---|
| 485 | NAME CDATA #REQUIRED
|
---|
| 486 | API CDATA #REQUIRED
|
---|
| 487 | STRIDE CDATA #REQUIRED
|
---|
| 488 | >
|
---|
| 489 |
|
---|
| 490 | <!ATTLIST RmStreamChannel
|
---|
| 491 | NAME CDATA #REQUIRED
|
---|
| 492 | API CDATA #REQUIRED
|
---|
| 493 | DATA_SIZE CDATA #REQUIRED
|
---|
| 494 | DATA_TYPE CDATA #REQUIRED
|
---|
| 495 | REGISTER CDATA #REQUIRED
|
---|
| 496 | USAGE CDATA #REQUIRED
|
---|
| 497 | USAGE_INDEX CDATA #REQUIRED
|
---|
| 498 | >
|
---|
| 499 |
|
---|
| 500 | <!ATTLIST RmModelData
|
---|
| 501 | NAME CDATA #REQUIRED
|
---|
| 502 | API CDATA #REQUIRED
|
---|
| 503 | FILE_NAME CDATA #REQUIRED
|
---|
| 504 | ORIENTATION CDATA #REQUIRED
|
---|
| 505 | >
|
---|
| 506 |
|
---|
| 507 | <!ATTLIST RmTextureReference
|
---|
| 508 | NAME CDATA #REQUIRED
|
---|
| 509 | API CDATA #REQUIRED
|
---|
| 510 | >
|
---|
| 511 |
|
---|
| 512 | <!ATTLIST RmLightReference
|
---|
| 513 | NAME CDATA #REQUIRED
|
---|
| 514 | API CDATA #REQUIRED
|
---|
| 515 | >
|
---|
| 516 |
|
---|
| 517 | <!ATTLIST RmMaterialReference
|
---|
| 518 | NAME CDATA #REQUIRED
|
---|
| 519 | API CDATA #REQUIRED
|
---|
| 520 | >
|
---|
| 521 |
|
---|
| 522 | <!ATTLIST RmModelReference
|
---|
| 523 | NAME CDATA #REQUIRED
|
---|
| 524 | API CDATA #REQUIRED
|
---|
| 525 | >
|
---|
| 526 |
|
---|
| 527 | <!ATTLIST RmStreamMapReference
|
---|
| 528 | NAME CDATA #REQUIRED
|
---|
| 529 | API CDATA #REQUIRED
|
---|
| 530 | >
|
---|
| 531 |
|
---|
| 532 | <!ATTLIST RmRenderableTexture
|
---|
| 533 | NAME CDATA #REQUIRED
|
---|
| 534 | API CDATA #REQUIRED
|
---|
| 535 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 536 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 537 | FILE_NAME CDATA #REQUIRED
|
---|
| 538 | ORIGIN CDATA #REQUIRED
|
---|
| 539 | WIDTH CDATA #REQUIRED
|
---|
| 540 | HEIGHT CDATA #REQUIRED
|
---|
| 541 | FORMAT CDATA #REQUIRED
|
---|
| 542 | USE_VIEWPORT_DIMENSIONS ( TRUE | FALSE ) #REQUIRED
|
---|
| 543 | GENERATE_MIPMAPS ( TRUE | FALSE ) #REQUIRED
|
---|
| 544 | WIDTH_RATIO CDATA #REQUIRED
|
---|
| 545 | HEIGHT_RATIO CDATA #REQUIRED
|
---|
| 546 | >
|
---|
| 547 |
|
---|
| 548 | <!ATTLIST RmRenderTarget
|
---|
| 549 | NAME CDATA #REQUIRED
|
---|
| 550 | API CDATA #REQUIRED
|
---|
| 551 | INDEX CDATA #REQUIRED
|
---|
| 552 | RENDER_TO_SCREEN ( TRUE | FALSE ) #REQUIRED
|
---|
| 553 | COLOR_CLEAR ( TRUE | FALSE ) #REQUIRED
|
---|
| 554 | DEPTH_CLEAR ( TRUE | FALSE ) #REQUIRED
|
---|
| 555 | CLEAR_COLOR_VALUE CDATA #REQUIRED
|
---|
| 556 | DEPTH_CLEAR_VALUE CDATA #REQUIRED
|
---|
| 557 | >
|
---|
| 558 |
|
---|
| 559 | <!ATTLIST RmBooleanVariable
|
---|
| 560 | NAME CDATA #REQUIRED
|
---|
| 561 | API CDATA #REQUIRED
|
---|
| 562 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 563 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 564 | VALUE CDATA #REQUIRED
|
---|
| 565 | >
|
---|
| 566 |
|
---|
| 567 | <!ATTLIST RmFloatVariable
|
---|
| 568 | NAME CDATA #REQUIRED
|
---|
| 569 | API CDATA #REQUIRED
|
---|
| 570 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 571 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 572 | VALUE CDATA #REQUIRED
|
---|
| 573 | MIN CDATA #REQUIRED
|
---|
| 574 | MAX CDATA #REQUIRED
|
---|
| 575 | CLAMP ( TRUE | FALSE ) #REQUIRED
|
---|
| 576 | >
|
---|
| 577 |
|
---|
| 578 | <!ATTLIST RmVectorVariable
|
---|
| 579 | NAME CDATA #REQUIRED
|
---|
| 580 | API CDATA #REQUIRED
|
---|
| 581 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 582 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 583 | VALUE_0 CDATA #REQUIRED
|
---|
| 584 | VALUE_1 CDATA #REQUIRED
|
---|
| 585 | VALUE_2 CDATA #REQUIRED
|
---|
| 586 | VALUE_3 CDATA #REQUIRED
|
---|
| 587 | MIN CDATA #REQUIRED
|
---|
| 588 | MAX CDATA #REQUIRED
|
---|
| 589 | CLAMP ( TRUE | FALSE ) #REQUIRED
|
---|
| 590 | NORMALIZE ( TRUE | FALSE ) #REQUIRED
|
---|
| 591 | >
|
---|
| 592 |
|
---|
| 593 | <!ATTLIST RmMatrixVariable
|
---|
| 594 | NAME CDATA #REQUIRED
|
---|
| 595 | API CDATA #REQUIRED
|
---|
| 596 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 597 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 598 | VALUE_0 CDATA #REQUIRED
|
---|
| 599 | VALUE_1 CDATA #REQUIRED
|
---|
| 600 | VALUE_2 CDATA #REQUIRED
|
---|
| 601 | VALUE_3 CDATA #REQUIRED
|
---|
| 602 | VALUE_4 CDATA #REQUIRED
|
---|
| 603 | VALUE_5 CDATA #REQUIRED
|
---|
| 604 | VALUE_6 CDATA #REQUIRED
|
---|
| 605 | VALUE_7 CDATA #REQUIRED
|
---|
| 606 | VALUE_8 CDATA #REQUIRED
|
---|
| 607 | VALUE_9 CDATA #REQUIRED
|
---|
| 608 | VALUE_10 CDATA #REQUIRED
|
---|
| 609 | VALUE_11 CDATA #REQUIRED
|
---|
| 610 | VALUE_12 CDATA #REQUIRED
|
---|
| 611 | VALUE_13 CDATA #REQUIRED
|
---|
| 612 | VALUE_14 CDATA #REQUIRED
|
---|
| 613 | VALUE_15 CDATA #REQUIRED
|
---|
| 614 | >
|
---|
| 615 |
|
---|
| 616 | <!ATTLIST RmDynamicVariable
|
---|
| 617 | NAME CDATA #REQUIRED
|
---|
| 618 | API CDATA #REQUIRED
|
---|
| 619 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 620 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 621 | VARIABLE_TYPE ( FLOAT | INTEGER | BOOLEAN ) #REQUIRED
|
---|
| 622 | ROWS CDATA #REQUIRED
|
---|
| 623 | COLUMNS CDATA #REQUIRED
|
---|
| 624 | FIXED_SIZE ( TRUE | FALSE ) #REQUIRED
|
---|
| 625 | MIN CDATA #REQUIRED
|
---|
| 626 | MAX CDATA #REQUIRED
|
---|
| 627 | CLAMP ( TRUE | FALSE ) #REQUIRED
|
---|
| 628 | NORMALIZE ( TRUE | FALSE ) #REQUIRED
|
---|
| 629 | >
|
---|
| 630 |
|
---|
| 631 | <!ATTLIST RmDynamicVariableValue
|
---|
| 632 | ROW_INDEX CDATA #REQUIRED
|
---|
| 633 | COLUMN_INDEX CDATA #REQUIRED
|
---|
| 634 | VALUE CDATA #REQUIRED
|
---|
| 635 | >
|
---|
| 636 |
|
---|
| 637 | <!ATTLIST RmColorVariable
|
---|
| 638 | NAME CDATA #REQUIRED
|
---|
| 639 | API CDATA #REQUIRED
|
---|
| 640 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 641 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 642 | VALUE_0 CDATA #REQUIRED
|
---|
| 643 | VALUE_1 CDATA #REQUIRED
|
---|
| 644 | VALUE_2 CDATA #REQUIRED
|
---|
| 645 | VALUE_3 CDATA #REQUIRED
|
---|
| 646 | >
|
---|
| 647 |
|
---|
| 648 | <!ATTLIST RmIntegerVariable
|
---|
| 649 | NAME CDATA #REQUIRED
|
---|
| 650 | API CDATA #REQUIRED
|
---|
| 651 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 652 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 653 | VALUE CDATA #REQUIRED
|
---|
| 654 | MIN CDATA #REQUIRED
|
---|
| 655 | MAX CDATA #REQUIRED
|
---|
| 656 | CLAMP ( TRUE | FALSE ) #REQUIRED
|
---|
| 657 | >
|
---|
| 658 |
|
---|
| 659 | <!ATTLIST RmStringVariable
|
---|
| 660 | NAME CDATA #REQUIRED
|
---|
| 661 | API CDATA #REQUIRED
|
---|
| 662 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 663 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 664 | >
|
---|
| 665 |
|
---|
| 666 | <!ATTLIST Rm2DTextureVariable
|
---|
| 667 | NAME CDATA #REQUIRED
|
---|
| 668 | API CDATA #REQUIRED
|
---|
| 669 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 670 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 671 | FILE_NAME CDATA #REQUIRED
|
---|
| 672 | ORIGIN CDATA #REQUIRED
|
---|
| 673 | >
|
---|
| 674 |
|
---|
| 675 | <!ATTLIST RmCubemapVariable
|
---|
| 676 | NAME CDATA #REQUIRED
|
---|
| 677 | API CDATA #REQUIRED
|
---|
| 678 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 679 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 680 | FILE_NAME CDATA #REQUIRED
|
---|
| 681 | ORIGIN CDATA #REQUIRED
|
---|
| 682 | >
|
---|
| 683 |
|
---|
| 684 | <!ATTLIST Rm3DTextureVariable
|
---|
| 685 | NAME CDATA #REQUIRED
|
---|
| 686 | API CDATA #REQUIRED
|
---|
| 687 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 688 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 689 | FILE_NAME CDATA #REQUIRED
|
---|
| 690 | ORIGIN CDATA #REQUIRED
|
---|
| 691 | >
|
---|
| 692 |
|
---|
| 693 | <!ATTLIST RmLightVariable
|
---|
| 694 | NAME CDATA #REQUIRED
|
---|
| 695 | API CDATA #REQUIRED
|
---|
| 696 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 697 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 698 | LIGHT_ENABLED ( TRUE | FALSE ) #REQUIRED
|
---|
| 699 | LIGHT_TYPE ( POSITIONAL | DIRECTIONAL | SPOTLIGHT ) #REQUIRED
|
---|
| 700 | AMBIENT_0 CDATA #REQUIRED
|
---|
| 701 | AMBIENT_1 CDATA #REQUIRED
|
---|
| 702 | AMBIENT_2 CDATA #REQUIRED
|
---|
| 703 | AMBIENT_3 CDATA #REQUIRED
|
---|
| 704 | DIFFUSE_0 CDATA #REQUIRED
|
---|
| 705 | DIFFUSE_1 CDATA #REQUIRED
|
---|
| 706 | DIFFUSE_2 CDATA #REQUIRED
|
---|
| 707 | DIFFUSE_3 CDATA #REQUIRED
|
---|
| 708 | SPECULAR_0 CDATA #REQUIRED
|
---|
| 709 | SPECULAR_1 CDATA #REQUIRED
|
---|
| 710 | SPECULAR_2 CDATA #REQUIRED
|
---|
| 711 | SPECULAR_3 CDATA #REQUIRED
|
---|
| 712 | POSITION_0 CDATA #REQUIRED
|
---|
| 713 | POSITION_1 CDATA #REQUIRED
|
---|
| 714 | POSITION_2 CDATA #REQUIRED
|
---|
| 715 | DIRECTION_0 CDATA #REQUIRED
|
---|
| 716 | DIRECTION_1 CDATA #REQUIRED
|
---|
| 717 | DIRECTION_2 CDATA #REQUIRED
|
---|
| 718 | ATTENUATION_0 CDATA #REQUIRED
|
---|
| 719 | ATTENUATION_1 CDATA #REQUIRED
|
---|
| 720 | ATTENUATION_2 CDATA #REQUIRED
|
---|
| 721 | SPOTLIGHT_THETA CDATA #REQUIRED
|
---|
| 722 | SPOTLIGHT_PHI CDATA #REQUIRED
|
---|
| 723 | RANGE CDATA #REQUIRED
|
---|
| 724 | FALLOFF CDATA #REQUIRED
|
---|
| 725 | >
|
---|
| 726 |
|
---|
| 727 | <!ATTLIST RmMaterialVariable
|
---|
| 728 | NAME CDATA #REQUIRED
|
---|
| 729 | API CDATA #REQUIRED
|
---|
| 730 | ARTIST_EDITABLE ( TRUE | FALSE ) #REQUIRED
|
---|
| 731 | VARIABLE_SEMANTIC CDATA #REQUIRED
|
---|
| 732 | AMBIENT_0 CDATA #REQUIRED
|
---|
| 733 | AMBIENT_1 CDATA #REQUIRED
|
---|
| 734 | AMBIENT_2 CDATA #REQUIRED
|
---|
| 735 | AMBIENT_3 CDATA #REQUIRED
|
---|
| 736 | DIFFUSE_0 CDATA #REQUIRED
|
---|
| 737 | DIFFUSE_1 CDATA #REQUIRED
|
---|
| 738 | DIFFUSE_2 CDATA #REQUIRED
|
---|
| 739 | DIFFUSE_3 CDATA #REQUIRED
|
---|
| 740 | SPECULAR_0 CDATA #REQUIRED
|
---|
| 741 | SPECULAR_1 CDATA #REQUIRED
|
---|
| 742 | SPECULAR_2 CDATA #REQUIRED
|
---|
| 743 | SPECULAR_3 CDATA #REQUIRED
|
---|
| 744 | EMISSIVE_0 CDATA #REQUIRED
|
---|
| 745 | EMISSIVE_1 CDATA #REQUIRED
|
---|
| 746 | EMISSIVE_2 CDATA #REQUIRED
|
---|
| 747 | EMISSIVE_3 CDATA #REQUIRED
|
---|
| 748 | SPECULAR_POWER CDATA #REQUIRED
|
---|
| 749 | >
|
---|
| 750 |
|
---|
| 751 | <!ATTLIST RmRegistryBranch
|
---|
| 752 | NAME CDATA #REQUIRED
|
---|
| 753 | API CDATA #REQUIRED
|
---|
| 754 | XML_VERSION CDATA #REQUIRED
|
---|
| 755 | >
|
---|
| 756 |
|
---|
| 757 | <!ATTLIST RmPlugInData
|
---|
| 758 | NAME CDATA #REQUIRED
|
---|
| 759 | API CDATA #REQUIRED
|
---|
| 760 | PLUGIN_GUID CDATA #REQUIRED
|
---|
| 761 | >
|
---|
| 762 |
|
---|
| 763 | <!ATTLIST RmClipboardNode
|
---|
| 764 | NAME CDATA #REQUIRED
|
---|
| 765 | API CDATA #REQUIRED
|
---|
| 766 | XML_VERSION CDATA #REQUIRED
|
---|
| 767 | >
|
---|
| 768 |
|
---|
| 769 | <!ATTLIST RmCamera
|
---|
| 770 | NAME CDATA #REQUIRED
|
---|
| 771 | API CDATA #REQUIRED
|
---|
| 772 | CAMERA_POSITION_X CDATA #REQUIRED
|
---|
| 773 | CAMERA_POSITION_Y CDATA #REQUIRED
|
---|
| 774 | CAMERA_POSITION_Z CDATA #REQUIRED
|
---|
| 775 | LOOK_AT_VECTOR_X CDATA #REQUIRED
|
---|
| 776 | LOOK_AT_VECTOR_Y CDATA #REQUIRED
|
---|
| 777 | LOOK_AT_VECTOR_Z CDATA #REQUIRED
|
---|
| 778 | UP_VECTOR_X CDATA #REQUIRED
|
---|
| 779 | UP_VECTOR_Y CDATA #REQUIRED
|
---|
| 780 | UP_VECTOR_Z CDATA #REQUIRED
|
---|
| 781 | FOV CDATA #REQUIRED
|
---|
| 782 | NEAR_CLIP_PLANE CDATA #REQUIRED
|
---|
| 783 | FAR_CLIP_PLANE CDATA #REQUIRED
|
---|
| 784 | >
|
---|
| 785 |
|
---|
| 786 | <!ATTLIST RmCameraReference
|
---|
| 787 | NAME CDATA #REQUIRED
|
---|
| 788 | API CDATA #REQUIRED
|
---|
| 789 | USE_ACTIVE_CAMERA ( TRUE | FALSE ) #REQUIRED
|
---|
| 790 | >
|
---|
| 791 |
|
---|
| 792 | <!ATTLIST RmShaderCode
|
---|
| 793 | TYPE ( TEXT ) #REQUIRED
|
---|
| 794 | >
|
---|
| 795 |
|
---|
| 796 | <!ATTLIST RmTextDataBlock
|
---|
| 797 | TYPE ( TEXT ) #REQUIRED
|
---|
| 798 | >
|
---|
| 799 |
|
---|
| 800 | ]>
|
---|
| 801 | <RENDER_MONKEY>
|
---|
| 802 | <RmEffectWorkspace NAME="Effect Workspace" API="" ACTIVE_EFFECT="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect" VALIDATION_STRING="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 803 | <RmRegistryBranch NAME="RM_REGISTRY" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 804 | <RmRegistryBranch NAME="RM_LOCAL" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 805 | <RmRegistryBranch NAME="WORKSPACE" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 806 | <RmStringVariable NAME="LAST_SAVE" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
[952] | 807 | 12/5/2006 9:53:25]]></RmTextDataBlock></RmStringVariable>
|
---|
[889] | 808 | <RmStringVariable NAME="VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
| 809 | RenderMonkey Version 1.6 (build 91)]]></RmTextDataBlock></RmStringVariable>
|
---|
| 810 | <RmStringVariable NAME="XML_VERSION" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
| 811 | RenderMonkey 1.6]]></RmTextDataBlock></RmStringVariable>
|
---|
| 812 | <RmStringVariable NAME="BASE_WORKSPACE_PATH" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
| 813 | L:\isma\svn2\GTP\trunk\App\Demos\Illum\IBRBillboardCloudTrees\RenderMonkey\IndirectTexturingShadowsEffect\]]></RmTextDataBlock></RmStringVariable>
|
---|
| 814 | </RmRegistryBranch>
|
---|
| 815 | <RmRegistryBranch NAME="RM_PLUGIN" API="" XML_VERSION="RenderMonkey 1.6"><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
| 816 | <DockingPaneLayouts><Application_Layout><Pane-1><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>sqrtNumSamples</Title><ID>1100</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>11</DockingHolder><FloatingHolder>23</FloatingHolder><LastHolder>23</LastHolder></Pane-1><Pane-2><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>1</Horiz><Pane-1>3</Pane-1><Pane-2>4</Pane-2><Pane-3>5</Pane-3><Pane-4>6</Pane-4><Pane-5>7</Pane-5><Pane-6>8</Pane-6><Pane-7>9</Pane-7><Pane-8>10</Pane-8><Pane-9>11</Pane-9><Pane-10>12</Pane-10><Panes>10</Panes></Pane-2><Pane-3><Type>1</Type><DockingCX>427</DockingCX><DockingCY>100</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-3><Pane-4><Type>1</Type><DockingCX>374</DockingCX><DockingCY>182</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-4><Pane-5><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-5><Pane-6><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-6><Pane-7><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-7><Pane-8><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-8><Pane-9><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-9><Pane-10><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-10><Pane-11><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-11><Pane-12><Type>2</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><Horiz>0</Horiz><Pane-1>13</Pane-1><Pane-2>19</Pane-2><Panes>2</Panes></Pane-12><Pane-13><Type>2</Type><DockingCX>0</DockingCX><DockingCY>720</DockingCY><Horiz>1</Horiz><Pane-1>14</Pane-1><Pane-2>16</Pane-2><Pane-3>17</Pane-3><Panes>3</Panes></Pane-13><Pane-14><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>15</Selected><Panes>1</Panes><Pane-1>15</Pane-1></Pane-14><Pane-15><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Workspace</Title><ID>1000</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>14</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>14</LastHolder></Pane-15><Pane-16><Type>4</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY></Pane-16><Pane-17><Type>1</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Selected>18</Selected><Panes>1</Panes><Pane-1>18</Pane-1></Pane-17><Pane-18><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Artist Editor</Title><ID>1001</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>17</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>17</LastHolder></Pane-18><Pane-19><Type>1</Type><DockingCX>250</DockingCX><DockingCY>344</DockingCY><Selected>20</Selected><Panes>1</Panes><Pane-1>20</Pane-1></Pane-19><Pane-20><Type>0</Type><DockingCX>250</DockingCX><DockingCY>250</DockingCY><Title>Output</Title><ID>1002</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>19</DockingHolder><FloatingHolder>0</FloatingHolder><LastHolder>19</LastHolder></Pane-20><Pane-21><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>22</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-21><Pane-22><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>23</Pane-1><Panes>1</Panes></Pane-22><Pane-23><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-23><Pane-24><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>sourceTextureSize</Title><ID>1101</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>10</DockingHolder><FloatingHolder>27</FloatingHolder><LastHolder>27</LastHolder></Pane-24><Pane-25><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>26</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-25><Pane-26><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>27</Pane-1><Panes>1</Panes></Pane-26><Pane-27><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-27><Pane-28><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>distanceScale</Title><ID>1102</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>9</DockingHolder><FloatingHolder>31</FloatingHolder><LastHolder>31</LastHolder></Pane-28><Pane-29><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>30</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-29><Pane-30><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>31</Pane-1><Panes>1</Panes></Pane-30><Pane-31><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-31><Pane-32><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>Ka</Title><ID>1103</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>8</DockingHolder><FloatingHolder>35</FloatingHolder><LastHolder>35</LastHolder></Pane-32><Pane-33><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>34</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-33><Pane-34><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>35</Pane-1><Panes>1</Panes></Pane-34><Pane-35><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-35><Pane-36><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>Kd</Title><ID>1104</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>7</DockingHolder><FloatingHolder>39</FloatingHolder><LastHolder>39</LastHolder></Pane-36><Pane-37><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>38</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-37><Pane-38><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>39</Pane-1><Panes>1</Panes></Pane-38><Pane-39><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-39><Pane-40><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>epsilonX</Title><ID>1105</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>6</DockingHolder><FloatingHolder>43</FloatingHolder><LastHolder>43</LastHolder></Pane-40><Pane-41><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>42</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-41><Pane-42><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>43</Pane-1><Panes>1</Panes></Pane-42><Pane-43><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-43><Pane-44><Type>0</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Title>epsilonY</Title><ID>1106</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>5</DockingHolder><FloatingHolder>47</FloatingHolder><LastHolder>47</LastHolder></Pane-44><Pane-45><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>46</TopContaner><WindowRectTopPos>26</WindowRectTopPos><WindowRectBottomPos>132</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-45><Pane-46><Type>2</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Horiz>1</Horiz><Pane-1>47</Pane-1><Panes>1</Panes></Pane-46><Pane-47><Type>1</Type><DockingCX>427</DockingCX><DockingCY>106</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-47><Pane-48><Type>0</Type><DockingCX>374</DockingCX><DockingCY>182</DockingCY><Title>lightPos</Title><ID>1107</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>4</DockingHolder><FloatingHolder>51</FloatingHolder><LastHolder>51</LastHolder></Pane-48><Pane-49><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>50</TopContaner><WindowRectTopPos>20</WindowRectTopPos><WindowRectBottomPos>202</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>374</WindowRectRightPos></Pane-49><Pane-50><Type>2</Type><DockingCX>374</DockingCX><DockingCY>182</DockingCY><Horiz>1</Horiz><Pane-1>51</Pane-1><Panes>1</Panes></Pane-50><Pane-51><Type>1</Type><DockingCX>374</DockingCX><DockingCY>182</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-51><Pane-52><Type>0</Type><DockingCX>427</DockingCX><DockingCY>100</DockingCY><Title>lightPosY</Title><ID>1108</ID><IconID>-1</IconID><Options>0</Options><DockingHolder>3</DockingHolder><FloatingHolder>55</FloatingHolder><LastHolder>55</LastHolder></Pane-52><Pane-53><Type>3</Type><DockingCX>0</DockingCX><DockingCY>0</DockingCY><TopContaner>54</TopContaner><WindowRectTopPos>20</WindowRectTopPos><WindowRectBottomPos>120</WindowRectBottomPos><WindowRectLeftPos>0</WindowRectLeftPos><WindowRectRightPos>427</WindowRectRightPos></Pane-53><Pane-54><Type>2</Type><DockingCX>427</DockingCX><DockingCY>100</DockingCY><Horiz>1</Horiz><Pane-1>55</Pane-1><Panes>1</Panes></Pane-54><Pane-55><Type>1</Type><DockingCX>427</DockingCX><DockingCY>100</DockingCY><Selected>0</Selected><Panes>0</Panes></Pane-55><Summary><TopContainer>2</TopContainer><Client>16</Client><Panes>55</Panes></Summary></Application_Layout></DockingPaneLayouts>
|
---|
| 817 | ]]></RmTextDataBlock>
|
---|
| 818 | <RmRegistryBranch NAME="RmRenderTargetEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 819 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 820 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 821 | </RmRegistryBranch>
|
---|
| 822 | <RmRegistryBranch NAME="RmPreviewDx9Window" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 823 | <RmRegistryBranch NAME="EffectPlacementRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 824 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 825 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 826 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 827 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="423" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 828 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="350" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 829 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="3" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 830 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 831 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 832 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 833 | </RmRegistryBranch>
|
---|
| 834 | </RmRegistryBranch>
|
---|
| 835 | </RmRegistryBranch>
|
---|
| 836 | <RmRegistryBranch NAME="RmShaderEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 837 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 838 | <RmRegistryBranch NAME="Disassembly" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 839 | <RmStringVariable NAME="Editing Shader" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
[952] | 840 | Pixel Shader]]></RmTextDataBlock></RmStringVariable>
|
---|
[889] | 841 | <RmStringVariable NAME="Editing Pass" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
[952] | 842 | LeavesIndirectTexturingPass]]></RmTextDataBlock></RmStringVariable>
|
---|
[889] | 843 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="58" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 844 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="696" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 845 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="255" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 846 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 847 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 848 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 849 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 850 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="44" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 851 | </RmRegistryBranch>
|
---|
| 852 | </RmRegistryBranch>
|
---|
| 853 | <RmRegistryBranch NAME="RmPreviewGLPreview" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 854 | <RmRegistryBranch NAME="RmTextureGenerator" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 855 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 856 | </RmRegistryBranch>
|
---|
| 857 | <RmRegistryBranch NAME="NoteEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 858 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 859 | </RmRegistryBranch>
|
---|
| 860 | <RmRegistryBranch NAME="RmRenderStateBlockEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 861 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 862 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.LeavesIndirectTexturingPass.Render State" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 863 | </RmRegistryBranch>
|
---|
| 864 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 865 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 866 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 867 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 868 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="696" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 869 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="255" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 870 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 871 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 872 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 873 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 874 | </RmRegistryBranch>
|
---|
| 875 | </RmRegistryBranch>
|
---|
| 876 | </RmRegistryBranch>
|
---|
| 877 | <RmRegistryBranch NAME="RmTextureObjectEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 878 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
[952] | 879 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.LeavesIndirectTexturingPass.sourceTexture" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
[889] | 880 | </RmRegistryBranch>
|
---|
| 881 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 882 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 883 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="66" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 884 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="87" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 885 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="696" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 886 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="255" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 887 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 888 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 889 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 890 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 891 | </RmRegistryBranch>
|
---|
| 892 | </RmRegistryBranch>
|
---|
| 893 | </RmRegistryBranch>
|
---|
| 894 | <RmRegistryBranch NAME="RmRenderableTextureEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 895 | <RmRegistryBranch NAME="EditNodeRepository" API="" XML_VERSION="RenderMonkey 1.6"/>
|
---|
| 896 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 897 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.ShadowMap" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 898 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 899 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="116" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 900 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="210" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 901 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="354" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 902 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 903 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 904 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 905 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 906 | </RmRegistryBranch>
|
---|
| 907 | </RmRegistryBranch>
|
---|
| 908 | </RmRegistryBranch>
|
---|
| 909 | <RmRegistryBranch NAME="RmScalarEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 910 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 911 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.sqrtNumSamples" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 912 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1100" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 913 | </RmRegistryBranch>
|
---|
| 914 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.sourceTextureSize" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 915 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1101" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 916 | </RmRegistryBranch>
|
---|
| 917 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.distanceScale" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 918 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1102" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 919 | </RmRegistryBranch>
|
---|
| 920 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.Ka" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 921 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1103" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 922 | </RmRegistryBranch>
|
---|
| 923 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.Kd" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 924 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1104" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 925 | </RmRegistryBranch>
|
---|
| 926 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.epsilonX" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 927 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1105" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 928 | </RmRegistryBranch>
|
---|
| 929 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.epsilonY" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 930 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1106" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 931 | </RmRegistryBranch>
|
---|
| 932 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.lightPosY" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 933 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1108" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 934 | </RmRegistryBranch>
|
---|
| 935 | </RmRegistryBranch>
|
---|
| 936 | </RmRegistryBranch>
|
---|
| 937 | <RmRegistryBranch NAME="RmStreamEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 938 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.Stream Mapping IndirectTexturing" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 939 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 940 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="116" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 941 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="554" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 942 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="254" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 943 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 944 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 945 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 946 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 947 | </RmRegistryBranch>
|
---|
| 948 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.PN Stream Mapping" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 949 | <RmIntegerVariable NAME="X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="258" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 950 | <RmIntegerVariable NAME="Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="116" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 951 | <RmIntegerVariable NAME="Width" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="554" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 952 | <RmIntegerVariable NAME="Height" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="228" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 953 | <RmIntegerVariable NAME="ShowStatus" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 954 | <RmIntegerVariable NAME="Visible" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="0" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 955 | <RmIntegerVariable NAME="Minimized X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 956 | <RmIntegerVariable NAME="Minimized Y" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-1" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 957 | </RmRegistryBranch>
|
---|
| 958 | </RmRegistryBranch>
|
---|
| 959 | <RmRegistryBranch NAME="RmVectorEditor" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 960 | <RmRegistryBranch NAME="NodeRepository" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 961 | <RmRegistryBranch NAME="Effect Workspace.Shadow Effects.IndirectTexturingShadowsEffect.lightPos" API="" XML_VERSION="RenderMonkey 1.6">
|
---|
| 962 | <RmIntegerVariable NAME="DockPaneID" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="1107" MIN="-10" MAX="10" CLAMP="FALSE"/>
|
---|
| 963 | </RmRegistryBranch>
|
---|
| 964 | </RmRegistryBranch>
|
---|
| 965 | </RmRegistryBranch>
|
---|
| 966 | </RmRegistryBranch>
|
---|
| 967 | </RmRegistryBranch>
|
---|
| 968 | </RmRegistryBranch>
|
---|
| 969 | <RmStringVariable NAME="Header" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC=""><RmTextDataBlock TYPE="TEXT"><![CDATA[
|
---|
| 970 | $File: //depot/3darg/Tools/RenderMonkey/Examples/DX9/Shadows.rfx $
|
---|
| 971 | $Revision: #14 $
|
---|
| 972 |
|
---|
| 973 | © ATI Technologies, 2003]]></RmTextDataBlock></RmStringVariable>
|
---|
| 974 | <RmEffectGroup NAME="Shadow Effects" API="">
|
---|
| 975 | <RmDirectXEffect NAME="IndirectTexturingShadowsEffect" API="D3D" ACTIVE_CAMERA="">
|
---|
| 976 | <RmFloatVariable NAME="backProjectionCut" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="78.000000" MIN="0.000000" MAX="200.000000" CLAMP="FALSE"/>
|
---|
| 977 | <RmFloatVariable NAME="shadowBias" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="0.004000" MIN="0.000000" MAX="0.010000" CLAMP="FALSE"/>
|
---|
| 978 | <RmFloatVariable NAME="distanceScale" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="0.001480" MIN="0.000000" MAX="0.004000" CLAMP="FALSE"/>
|
---|
| 979 | <RmFloatVariable NAME="Ks" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="0.620000" MIN="0.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 980 | <RmFloatVariable NAME="Kd" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="1.000000" MIN="0.000000" MAX="1.000000" CLAMP="TRUE"/>
|
---|
| 981 | <RmFloatVariable NAME="Ka" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="0.390000" MIN="0.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 982 | <RmVectorVariable NAME="lightPos" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE_0="4.000000" VALUE_1="71.999992" VALUE_2="99.999992" VALUE_3="1.000000" MIN="-100.000000" MAX="100.000000" CLAMP="FALSE" NORMALIZE="FALSE"/>
|
---|
| 983 | <RmFloatVariable NAME="epsilonX" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="-0.070000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 984 | <RmFloatVariable NAME="epsilonY" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="-0.020000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 985 | <RmFloatVariable NAME="sqrtNumSamples" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="4.000000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 986 | <RmFloatVariable NAME="sourceTextureSize" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE="16.000000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 987 | <RmFloatVariable NAME="nearClipPlane" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="NearClipPlane" VALUE="0.000000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 988 | <RmFloatVariable NAME="lightPosY" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" VALUE="-100.000000" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
| 989 | <RmColorVariable NAME="platformColor" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="1.000000" VALUE_1="0.679020" VALUE_2="0.300413" VALUE_3="1.000000"/>
|
---|
| 990 | <Rm2DTextureVariable NAME="sourceTexture" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="chestnutRotatedLeafAtlasDefault.png" ORIGIN="0"/>
|
---|
| 991 | <Rm2DTextureVariable NAME="trunkTexture" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="castanea_sativa_bark.png" ORIGIN="0"/>
|
---|
| 992 | <Rm2DTextureVariable NAME="SpotLight" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="spotlight.png" ORIGIN="0"/>
|
---|
| 993 | <Rm2DTextureVariable NAME="indirectTexture" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="chestnutIndirectBillboardGroupAtlas0.png" ORIGIN="0"/>
|
---|
| 994 | <RmRenderableTexture NAME="ShadowMap" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="" FILE_NAME="" ORIGIN="0" WIDTH="1404" HEIGHT="690" FORMAT="21" USE_VIEWPORT_DIMENSIONS="TRUE" GENERATE_MIPMAPS="FALSE" WIDTH_RATIO="1.000000" HEIGHT_RATIO="1.000000"/>
|
---|
| 995 | <RmPass NAME="DepthTrunkPass" API="D3D" PASS_INDEX="0" ENABLED="TRUE">
|
---|
| 996 | <RmModelReference NAME="trunk" API=""/>
|
---|
| 997 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 998 | float4x4 view_proj_matrix: register(c0);
|
---|
| 999 | float4 lightPos: register(c4);
|
---|
| 1000 | float distanceScale: register(c5);
|
---|
| 1001 | float4x4 proj_matrix: register(c6);
|
---|
| 1002 | float time_0_X: register(c10);
|
---|
| 1003 | float lightPosY;
|
---|
| 1004 |
|
---|
| 1005 | struct VS_OUTPUT {
|
---|
| 1006 | float4 Pos: POSITION;
|
---|
| 1007 | float3 lightVec: TEXCOORD0;
|
---|
| 1008 | };
|
---|
| 1009 |
|
---|
| 1010 | VS_OUTPUT main(float4 Pos: POSITION){
|
---|
| 1011 | VS_OUTPUT Out;
|
---|
| 1012 |
|
---|
| 1013 | // Animate the light position.
|
---|
| 1014 | // Comment out this code to use a static light.
|
---|
| 1015 | // In real applications this work is better done on
|
---|
| 1016 | // the CPU as it's constant for the whole scene.
|
---|
| 1017 | float3 lightPos;
|
---|
| 1018 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1019 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1020 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1021 | lightPos.y = lightPosY;
|
---|
| 1022 |
|
---|
| 1023 | // Create view vectors for the light, looking at (0,0,0)
|
---|
| 1024 | // In real applications this work is better done on
|
---|
| 1025 | // the CPU as it's constant for the whole scene.
|
---|
| 1026 | float3 dirZ = -normalize(lightPos);
|
---|
| 1027 | float3 up = float3(0,0,1);
|
---|
| 1028 | float3 dirX = cross(up, dirZ);
|
---|
| 1029 | float3 dirY = cross(dirZ, dirX);
|
---|
| 1030 |
|
---|
| 1031 | // Transform into light's view space.
|
---|
| 1032 | // In real applications we would be better off using a 4x4
|
---|
| 1033 | // matrix instead, but for this shader it's cheaper to
|
---|
| 1034 | // just transpose and rotate into light's view space.
|
---|
| 1035 | float4 pos;
|
---|
| 1036 | Pos.xyz -= lightPos;
|
---|
| 1037 | pos.x = dot(dirX, Pos);
|
---|
| 1038 | pos.y = dot(dirY, Pos);
|
---|
| 1039 | pos.z = dot(dirZ, Pos);
|
---|
| 1040 | pos.w = 1;
|
---|
| 1041 |
|
---|
| 1042 | // Project it. For this sample using the normal projection
|
---|
| 1043 | // matrix suffices, however, real applications will typically
|
---|
| 1044 | // use a separate projection matrix for each light depending
|
---|
| 1045 | // on its properties such as FOV and range.
|
---|
| 1046 | Out.Pos = mul(proj_matrix, pos);
|
---|
| 1047 | Out.lightVec = distanceScale * Pos;
|
---|
| 1048 |
|
---|
| 1049 | return Out;
|
---|
| 1050 | }
|
---|
| 1051 |
|
---|
| 1052 |
|
---|
| 1053 | ]]></RmShaderCode>
|
---|
| 1054 | <RmShaderConstant NAME="distanceScale" API="" REGISTER="5"/>
|
---|
| 1055 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="11"/>
|
---|
| 1056 | <RmShaderConstant NAME="proj_matrix" API="" REGISTER="6"/>
|
---|
| 1057 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="10"/>
|
---|
| 1058 | </RmHLSLShader>
|
---|
| 1059 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1060 | float4 main(float3 lightVec: TEXCOORD0) : COLOR {
|
---|
| 1061 | // Output radial distance
|
---|
| 1062 | return length(lightVec);
|
---|
| 1063 | }
|
---|
| 1064 |
|
---|
| 1065 | ]]></RmShaderCode></RmHLSLShader>
|
---|
| 1066 | <RmRenderTarget NAME="ShadowMap" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="16777215" DEPTH_CLEAR_VALUE="1.000000"/>
|
---|
| 1067 | <RmStreamMapReference NAME="PN Stream Mapping" API=""/>
|
---|
| 1068 | </RmPass>
|
---|
| 1069 | <RmPass NAME="DepthLeavesIndirectTexturingPass" API="D3D" PASS_INDEX="1" ENABLED="TRUE">
|
---|
| 1070 | <RmModelReference NAME="leavesBillboardCloud" API=""/>
|
---|
| 1071 | <RmRenderStateBlock NAME="Render State" API="D3D">
|
---|
| 1072 | <RmState NAME="D3DRS_ALPHAFUNC" API="D3D" STATE="25" VALUE="7" USAGE="RENDER_STATE"/>
|
---|
| 1073 | <RmState NAME="D3DRS_ALPHAREF" API="D3D" STATE="24" VALUE="272" USAGE="RENDER_STATE"/>
|
---|
| 1074 | <RmState NAME="D3DRS_ALPHATESTENABLE" API="D3D" STATE="15" VALUE="1" USAGE="RENDER_STATE"/>
|
---|
| 1075 | <RmState NAME="D3DRS_CULLMODE" API="D3D" STATE="22" VALUE="1" USAGE="RENDER_STATE"/>
|
---|
| 1076 | </RmRenderStateBlock>
|
---|
| 1077 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1078 | uniform float epsilonX;
|
---|
| 1079 | uniform float epsilonY;
|
---|
| 1080 | uniform float sourceTextureSize;
|
---|
| 1081 | uniform float numSamples;
|
---|
| 1082 | uniform float sqrtNumSamples;
|
---|
| 1083 | sampler indirectTexture: register(s0);
|
---|
| 1084 | sampler sourceTexture: register(s1);
|
---|
| 1085 |
|
---|
| 1086 | float4 main(float3 lightVec: TEXCOORD0,
|
---|
| 1087 | float2 texCoord: TEXCOORD1,
|
---|
| 1088 | float2 subTexCoord: TEXCOORD2) : COLOR {
|
---|
| 1089 |
|
---|
| 1090 | float4 ocolor = float4(1.0, 1.0, 1.0, 0.0);
|
---|
| 1091 | float2 epsilon = float2(epsilonX, epsilonY);
|
---|
| 1092 | float4 value = tex2D(indirectTexture, subTexCoord).xyzw;
|
---|
| 1093 | float2 coords = float2(0.0, 1.0) - abs(texCoord - ( value.xy - epsilon ) );
|
---|
| 1094 | if (value.w != 0.0)
|
---|
| 1095 | {
|
---|
| 1096 | float2 newcoord = (float2(1.0, 1.0) - value.zw) + ((coords * sourceTextureSize) / sqrtNumSamples);
|
---|
| 1097 | float depth = length(lightVec);
|
---|
| 1098 | // Output radial distance
|
---|
| 1099 | ocolor = (tex2D(sourceTexture, newcoord).w != 0.0) ? float4(depth.xxx, 1.0) : float4(1.0, 1.0, 1.0, 0.0);
|
---|
| 1100 | }
|
---|
| 1101 | return ocolor;
|
---|
| 1102 | }
|
---|
| 1103 |
|
---|
| 1104 | ]]></RmShaderCode>
|
---|
| 1105 | <RmSampler NAME="indirectTexture" API="" REGISTER="0"/>
|
---|
| 1106 | <RmSampler NAME="sourceTexture" API="" REGISTER="1"/>
|
---|
| 1107 | <RmShaderConstant NAME="epsilonX" API="" REGISTER="0"/>
|
---|
| 1108 | <RmShaderConstant NAME="epsilonY" API="" REGISTER="1"/>
|
---|
| 1109 | <RmShaderConstant NAME="sourceTextureSize" API="" REGISTER="2"/>
|
---|
| 1110 | <RmShaderConstant NAME="sqrtNumSamples" API="" REGISTER="3"/>
|
---|
| 1111 | </RmHLSLShader>
|
---|
| 1112 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1113 | float4x4 view_proj_matrix: register(c0);
|
---|
| 1114 | float4 lightPos: register(c4);
|
---|
| 1115 | float distanceScale: register(c5);
|
---|
| 1116 | float4x4 proj_matrix: register(c6);
|
---|
| 1117 | float time_0_X: register(c10);
|
---|
| 1118 | float lightPosY;
|
---|
| 1119 |
|
---|
| 1120 | struct VS_OUTPUT {
|
---|
| 1121 | float4 Pos: POSITION;
|
---|
| 1122 | float3 lightVec: TEXCOORD0;
|
---|
| 1123 | float2 texCoord: TEXCOORD1;
|
---|
| 1124 | float2 subTexCoord: TEXCOORD2;
|
---|
| 1125 | };
|
---|
| 1126 |
|
---|
| 1127 | VS_OUTPUT main(float4 Pos: POSITION,
|
---|
| 1128 | float2 color: COLOR,
|
---|
| 1129 | float2 subTexCoord: TEXCOORD0){
|
---|
| 1130 | VS_OUTPUT Out;
|
---|
| 1131 |
|
---|
| 1132 | // Animate the light position.
|
---|
| 1133 | // Comment out this code to use a static light.
|
---|
| 1134 | // In real applications this work is better done on
|
---|
| 1135 | // the CPU as it's constant for the whole scene.
|
---|
| 1136 | float3 lightPos;
|
---|
| 1137 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1138 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1139 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1140 | lightPos.y = lightPosY;
|
---|
| 1141 |
|
---|
| 1142 | // Create view vectors for the light, looking at (0,0,0)
|
---|
| 1143 | // In real applications this work is better done on
|
---|
| 1144 | // the CPU as it's constant for the whole scene.
|
---|
| 1145 | float3 dirZ = -normalize(lightPos);
|
---|
| 1146 | float3 up = float3(0,0,1);
|
---|
| 1147 | float3 dirX = cross(up, dirZ);
|
---|
| 1148 | float3 dirY = cross(dirZ, dirX);
|
---|
| 1149 |
|
---|
| 1150 | // Transform into light's view space.
|
---|
| 1151 | // In real applications we would be better off using a 4x4
|
---|
| 1152 | // matrix instead, but for this shader it's cheaper to
|
---|
| 1153 | // just transpose and rotate into light's view space.
|
---|
| 1154 | float4 pos;
|
---|
| 1155 | Pos.xyz -= lightPos;
|
---|
| 1156 | pos.x = dot(dirX, Pos);
|
---|
| 1157 | pos.y = dot(dirY, Pos);
|
---|
| 1158 | pos.z = dot(dirZ, Pos);
|
---|
| 1159 | pos.w = 1;
|
---|
| 1160 |
|
---|
| 1161 | // Project it. For this sample using the normal projection
|
---|
| 1162 | // matrix suffices, however, real applications will typically
|
---|
| 1163 | // use a separate projection matrix for each light depending
|
---|
| 1164 | // on its properties such as FOV and range.
|
---|
| 1165 | Out.Pos = mul(proj_matrix, pos);
|
---|
| 1166 | Out.lightVec = distanceScale * Pos;
|
---|
| 1167 |
|
---|
| 1168 | Out.subTexCoord = subTexCoord;
|
---|
| 1169 | Out.texCoord = color.xy;
|
---|
| 1170 |
|
---|
| 1171 | return Out;
|
---|
| 1172 | }
|
---|
| 1173 |
|
---|
| 1174 |
|
---|
| 1175 | ]]></RmShaderCode>
|
---|
| 1176 | <RmShaderConstant NAME="distanceScale" API="" REGISTER="5"/>
|
---|
| 1177 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="11"/>
|
---|
| 1178 | <RmShaderConstant NAME="proj_matrix" API="" REGISTER="6"/>
|
---|
| 1179 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="10"/>
|
---|
| 1180 | </RmHLSLShader>
|
---|
| 1181 | <RmRenderTarget NAME="ShadowMap" API="" INDEX="0" RENDER_TO_SCREEN="FALSE" COLOR_CLEAR="TRUE" DEPTH_CLEAR="TRUE" CLEAR_COLOR_VALUE="16777215" DEPTH_CLEAR_VALUE="1.000000"/>
|
---|
| 1182 | <RmStreamMapReference NAME="Stream Mapping IndirectTexturing" API=""/>
|
---|
| 1183 | <RmTextureObject NAME="sourceTexture" API="D3D" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
|
---|
| 1184 | <RmTextureReference NAME="sourceTexture" API=""/>
|
---|
| 1185 | </RmTextureObject>
|
---|
| 1186 | <RmTextureObject NAME="indirectTexture" API="D3D" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
|
---|
| 1187 | <RmTextureReference NAME="indirectTexture" API=""/>
|
---|
| 1188 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
|
---|
| 1189 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="1" USAGE="SAMPLER_STATE"/>
|
---|
| 1190 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
| 1191 | </RmTextureObject>
|
---|
| 1192 | </RmPass>
|
---|
| 1193 | <RmPass NAME="LightPass" API="D3D" PASS_INDEX="2" ENABLED="TRUE">
|
---|
| 1194 | <RmModelReference NAME="Sphere" API=""/>
|
---|
| 1195 | <RmRenderStateBlock NAME="Render State" API="D3D"/>
|
---|
| 1196 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1197 | float4x4 view_proj_matrix: register(c0);
|
---|
| 1198 | float4 lightPos: register(c4);
|
---|
| 1199 | float time_0_X: register(c5);
|
---|
| 1200 | float lightPosY;
|
---|
| 1201 |
|
---|
| 1202 | struct VS_OUTPUT {
|
---|
| 1203 | float4 Pos: POSITION;
|
---|
| 1204 | };
|
---|
| 1205 |
|
---|
| 1206 | VS_OUTPUT main(float4 Pos: POSITION){
|
---|
| 1207 | VS_OUTPUT Out;
|
---|
| 1208 |
|
---|
| 1209 | // Animate the light position.
|
---|
| 1210 | // Comment out this code to use a static light.
|
---|
| 1211 | // In real applications this work is better done on
|
---|
| 1212 | // the CPU as it's constant for the whole scene.
|
---|
| 1213 | float3 lightPos;
|
---|
| 1214 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1215 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1216 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1217 | lightPos.y = lightPosY;
|
---|
| 1218 |
|
---|
| 1219 | // Compensate for source model not being a perfect sphere.
|
---|
| 1220 | Pos.xyz = 7 * normalize(Pos.xyz);
|
---|
| 1221 | // Put light in position
|
---|
| 1222 | Pos.xyz += lightPos;
|
---|
| 1223 |
|
---|
| 1224 | Out.Pos = mul(view_proj_matrix, Pos);
|
---|
| 1225 |
|
---|
| 1226 | return Out;
|
---|
| 1227 | }
|
---|
| 1228 |
|
---|
| 1229 |
|
---|
| 1230 | ]]></RmShaderCode>
|
---|
| 1231 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="6"/>
|
---|
| 1232 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="5"/>
|
---|
| 1233 | <RmShaderConstant NAME="view_proj_matrix" API="" REGISTER="0"/>
|
---|
| 1234 | </RmHLSLShader>
|
---|
| 1235 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1236 | float4 main() : COLOR {
|
---|
| 1237 | return 1;
|
---|
| 1238 | }
|
---|
| 1239 |
|
---|
| 1240 | ]]></RmShaderCode></RmHLSLShader>
|
---|
| 1241 | <RmStreamMapReference NAME="PN Stream Mapping" API=""/>
|
---|
| 1242 | </RmPass>
|
---|
| 1243 | <RmPass NAME="TrunkPass" API="D3D" PASS_INDEX="3" ENABLED="TRUE">
|
---|
| 1244 | <RmModelReference NAME="trunk" API=""/>
|
---|
| 1245 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1246 | float4x4 view_proj_matrix: register(c0);
|
---|
| 1247 | float4 lightPos: register(c4);
|
---|
| 1248 | float4 view_position: register(c5);
|
---|
| 1249 | float4x4 proj_matrix: register(c6);
|
---|
| 1250 | float distanceScale: register(c10);
|
---|
| 1251 | float time_0_X: register(c11);
|
---|
| 1252 | float lightPosY;
|
---|
| 1253 |
|
---|
| 1254 | struct VS_OUTPUT {
|
---|
| 1255 | float4 Pos: POSITION;
|
---|
| 1256 | float3 normal: TEXCOORD0;
|
---|
| 1257 | float3 lightVec : TEXCOORD1;
|
---|
| 1258 | float3 viewVec: TEXCOORD2;
|
---|
| 1259 | float4 shadowCrd: TEXCOORD3;
|
---|
| 1260 | float2 texCoord: TEXCOORD4;
|
---|
| 1261 | };
|
---|
| 1262 |
|
---|
| 1263 | VS_OUTPUT main(float4 Pos: POSITION,
|
---|
| 1264 | float3 normal: NORMAL,
|
---|
| 1265 | float2 texCoord: TEXCOORD0){
|
---|
| 1266 | VS_OUTPUT Out;
|
---|
| 1267 |
|
---|
| 1268 | // Animate the light position.
|
---|
| 1269 | // Comment out this code to use a static light.
|
---|
| 1270 | // In real applications this work is better done on
|
---|
| 1271 | // the CPU as it's constant for the whole scene.
|
---|
| 1272 | float3 lightPos;
|
---|
| 1273 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1274 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1275 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1276 | lightPos.y = lightPosY;
|
---|
| 1277 |
|
---|
| 1278 | Out.Pos = mul(view_proj_matrix, Pos);
|
---|
| 1279 | // World-space lighting
|
---|
| 1280 | Out.normal = normal;
|
---|
| 1281 | Out.lightVec = distanceScale * (lightPos - Pos.xyz);
|
---|
| 1282 | Out.viewVec = view_position - Pos.xyz;
|
---|
| 1283 |
|
---|
| 1284 | // Create view vectors for the light, looking at (0,0,0)
|
---|
| 1285 | // In real applications this work is better done on
|
---|
| 1286 | // the CPU as it's constant for the whole scene.
|
---|
| 1287 | float3 dirZ = -normalize(lightPos);
|
---|
| 1288 | float3 up = float3(0,0,1);
|
---|
| 1289 | float3 dirX = cross(up, dirZ);
|
---|
| 1290 | float3 dirY = cross(dirZ, dirX);
|
---|
| 1291 |
|
---|
| 1292 | // Transform into light's view space.
|
---|
| 1293 | // In real applications we would be better off using a 4x4
|
---|
| 1294 | // matrix instead, but for this shader it's cheaper to
|
---|
| 1295 | // just transpose and rotate into light's view space.
|
---|
| 1296 | float4 pos;
|
---|
| 1297 | Pos.xyz -= lightPos;
|
---|
| 1298 | pos.x = dot(dirX, Pos);
|
---|
| 1299 | pos.y = dot(dirY, Pos);
|
---|
| 1300 | pos.z = dot(dirZ, Pos);
|
---|
| 1301 | pos.w = 1;
|
---|
| 1302 |
|
---|
| 1303 | // Project it. For this sample using the normal projection
|
---|
| 1304 | // matrix suffices, however, real applications will typically
|
---|
| 1305 | // use a separate projection matrix for each light depending
|
---|
| 1306 | // on its properties such as FOV and range.
|
---|
| 1307 | float4 sPos = mul(proj_matrix, pos);
|
---|
| 1308 |
|
---|
| 1309 | // Use projective texturing to map the position of each fragment
|
---|
| 1310 | // to its corresponding texel in the shadow map.
|
---|
| 1311 | sPos.z += 10;
|
---|
| 1312 | Out.shadowCrd.x = 0.5 * (sPos.z + sPos.x);
|
---|
| 1313 | Out.shadowCrd.y = 0.5 * (sPos.z - sPos.y);
|
---|
| 1314 | Out.shadowCrd.z = 0;
|
---|
| 1315 | Out.shadowCrd.w = sPos.z;
|
---|
| 1316 |
|
---|
| 1317 | Out.texCoord = texCoord;
|
---|
| 1318 |
|
---|
| 1319 | return Out;
|
---|
| 1320 | }
|
---|
| 1321 |
|
---|
| 1322 |
|
---|
| 1323 | ]]></RmShaderCode>
|
---|
| 1324 | <RmShaderConstant NAME="distanceScale" API="" REGISTER="10"/>
|
---|
| 1325 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="12"/>
|
---|
| 1326 | <RmShaderConstant NAME="proj_matrix" API="" REGISTER="6"/>
|
---|
| 1327 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="11"/>
|
---|
| 1328 | <RmShaderConstant NAME="view_position" API="" REGISTER="5"/>
|
---|
| 1329 | <RmShaderConstant NAME="view_proj_matrix" API="" REGISTER="0"/>
|
---|
| 1330 | </RmHLSLShader>
|
---|
| 1331 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1332 | float backProjectionCut: register(c2);
|
---|
| 1333 | float Ka: register(c3);
|
---|
| 1334 | float Kd: register(c4);
|
---|
| 1335 | float Ks: register(c5);
|
---|
| 1336 | float4 modelColor: register(c0);
|
---|
| 1337 | float shadowBias: register(c1);
|
---|
| 1338 | sampler ShadowMap: register(s0);
|
---|
| 1339 | sampler SpotLight: register(s1);
|
---|
| 1340 |
|
---|
| 1341 | sampler trunkTexture: register(s2);
|
---|
| 1342 |
|
---|
| 1343 | float4 main(float3 normal: TEXCOORD0,
|
---|
| 1344 | float3 lightVec: TEXCOORD1,
|
---|
| 1345 | float3 viewVec: TEXCOORD2,
|
---|
| 1346 | float4 shadowCrd: TEXCOORD3,
|
---|
| 1347 | float2 texCoord: TEXCOORD4) : COLOR {
|
---|
| 1348 | normal = normalize(normal);
|
---|
| 1349 | // Radial distance
|
---|
| 1350 | float depth = length(lightVec);
|
---|
| 1351 | // Normalizes light vector
|
---|
| 1352 | lightVec /= depth;
|
---|
| 1353 |
|
---|
| 1354 | // Standard lighting
|
---|
| 1355 | float diffuse = saturate(dot(lightVec, normal));
|
---|
| 1356 | float specular = pow(saturate(dot(reflect(-normalize(viewVec), normal), lightVec)), 16);
|
---|
| 1357 |
|
---|
| 1358 | // The depth of the fragment closest to the light
|
---|
| 1359 | float shadowMap = tex2Dproj(ShadowMap, shadowCrd);
|
---|
| 1360 | // A spot image of the spotlight
|
---|
| 1361 | float spotLight = tex2Dproj(SpotLight, shadowCrd);
|
---|
| 1362 | // If the depth is larger than the stored depth, this fragment
|
---|
| 1363 | // is not the closest to the light, that is we are in shadow.
|
---|
| 1364 | // Otherwise, we're lit. Add a bias to avoid precision issues.
|
---|
| 1365 | float shadow = (depth < shadowMap + shadowBias);
|
---|
| 1366 | // Cut back-projection, that is, make sure we don't lit
|
---|
| 1367 | // anything behind the light. Theoretically, you should just
|
---|
| 1368 | // cut at w = 0, but in practice you'll have to cut at a
|
---|
| 1369 | // fairly high positive number to avoid precision issue when
|
---|
| 1370 | // coordinates approaches zero.
|
---|
| 1371 | shadow *= (shadowCrd.w > backProjectionCut);
|
---|
| 1372 | // Modulate with spotlight image
|
---|
| 1373 | shadow *= spotLight;
|
---|
| 1374 |
|
---|
| 1375 | float4 ocolor = tex2D(trunkTexture, texCoord);
|
---|
| 1376 | // Shadow any light contribution except ambient
|
---|
| 1377 | return Ka * ocolor + (Kd * diffuse * ocolor + Ks * specular) * shadow;
|
---|
| 1378 | }
|
---|
| 1379 |
|
---|
| 1380 |
|
---|
| 1381 |
|
---|
| 1382 | ]]></RmShaderCode>
|
---|
| 1383 | <RmSampler NAME="ShadowMap" API="" REGISTER="0"/>
|
---|
| 1384 | <RmSampler NAME="SpotLight" API="" REGISTER="1"/>
|
---|
| 1385 | <RmSampler NAME="trunkTexture" API="" REGISTER="2"/>
|
---|
| 1386 | <RmShaderConstant NAME="Ka" API="" REGISTER="3"/>
|
---|
| 1387 | <RmShaderConstant NAME="Kd" API="" REGISTER="4"/>
|
---|
| 1388 | <RmShaderConstant NAME="backProjectionCut" API="" REGISTER="2"/>
|
---|
| 1389 | <RmShaderConstant NAME="shadowBias" API="" REGISTER="1"/>
|
---|
| 1390 | <RmShaderConstant NAME="Ks" API="" REGISTER="5"/>
|
---|
| 1391 | </RmHLSLShader>
|
---|
| 1392 | <RmStreamMapReference NAME="PN Stream Mapping" API=""/>
|
---|
| 1393 | <RmTextureObject NAME="SpotLight" API="D3D" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
|
---|
| 1394 | <RmTextureReference NAME="SpotLight" API=""/>
|
---|
| 1395 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1396 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1397 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1398 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1399 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1400 | </RmTextureObject>
|
---|
| 1401 | <RmTextureObject NAME="ShadowMap" API="D3D" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
|
---|
| 1402 | <RmTextureReference NAME="ShadowMap" API=""/>
|
---|
| 1403 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1404 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1405 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1406 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1407 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
| 1408 | </RmTextureObject>
|
---|
| 1409 | <RmTextureObject NAME="trunkTexture" API="D3D" STATE_INDEX="2" VERTEX_TEXTURE="FALSE">
|
---|
| 1410 | <RmTextureReference NAME="trunkTexture" API=""/>
|
---|
| 1411 | </RmTextureObject>
|
---|
| 1412 | </RmPass>
|
---|
| 1413 | <RmPass NAME="LeavesIndirectTexturingPass" API="D3D" PASS_INDEX="4" ENABLED="TRUE">
|
---|
| 1414 | <RmModelReference NAME="leavesBillboardCloud" API=""/>
|
---|
| 1415 | <RmRenderStateBlock NAME="Render State" API="D3D">
|
---|
| 1416 | <RmState NAME="D3DRS_ALPHAFUNC" API="D3D" STATE="25" VALUE="7" USAGE="RENDER_STATE"/>
|
---|
| 1417 | <RmState NAME="D3DRS_ALPHAREF" API="D3D" STATE="24" VALUE="272" USAGE="RENDER_STATE"/>
|
---|
| 1418 | <RmState NAME="D3DRS_ALPHATESTENABLE" API="D3D" STATE="15" VALUE="1" USAGE="RENDER_STATE"/>
|
---|
| 1419 | <RmState NAME="D3DRS_CULLMODE" API="D3D" STATE="22" VALUE="1" USAGE="RENDER_STATE"/>
|
---|
| 1420 | </RmRenderStateBlock>
|
---|
| 1421 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1422 | float backProjectionCut: register(c2);
|
---|
| 1423 | float Ka: register(c3);
|
---|
| 1424 | float Kd: register(c4);
|
---|
| 1425 | float Ks: register(c5);
|
---|
| 1426 | float4 modelColor: register(c0);
|
---|
| 1427 | float shadowBias: register(c1);
|
---|
| 1428 | sampler ShadowMap: register(s0);
|
---|
| 1429 | sampler SpotLight: register(s1);
|
---|
| 1430 |
|
---|
| 1431 | uniform float epsilonX;
|
---|
| 1432 | uniform float epsilonY;
|
---|
| 1433 | uniform float sourceTextureSize;
|
---|
| 1434 | uniform float numSamples;
|
---|
| 1435 | uniform float sqrtNumSamples;
|
---|
| 1436 | sampler indirectTexture: register(s2);
|
---|
| 1437 | sampler sourceTexture: register(s3);
|
---|
| 1438 |
|
---|
| 1439 | float4 main(float3 normal: TEXCOORD0,
|
---|
| 1440 | float3 lightVec: TEXCOORD1,
|
---|
| 1441 | float3 viewVec: TEXCOORD2,
|
---|
| 1442 | float4 shadowCrd: TEXCOORD3,
|
---|
| 1443 | float2 texCoord: TEXCOORD4,
|
---|
| 1444 | float2 subTexCoord: TEXCOORD5) : COLOR {
|
---|
| 1445 | normal = normalize(normal);
|
---|
| 1446 | // Radial distance
|
---|
| 1447 | float depth = length(lightVec);
|
---|
| 1448 | // Normalizes light vector
|
---|
| 1449 | lightVec /= depth;
|
---|
| 1450 |
|
---|
| 1451 | // Standard lighting
|
---|
| 1452 | float diffuse = clamp(dot(lightVec, normal), 0.0, 1.0) + clamp(-dot(lightVec, normal), 0.0, 1.0);
|
---|
| 1453 | float specular = 0.0;
|
---|
| 1454 | //float specular = pow(saturate(dot(reflect(-normalize(viewVec), normal), lightVec)), 16);
|
---|
| 1455 |
|
---|
| 1456 | // The depth of the fragment closest to the light
|
---|
| 1457 | float shadowMap = tex2Dproj(ShadowMap, shadowCrd);
|
---|
| 1458 | // A spot image of the spotlight
|
---|
| 1459 | float spotLight = tex2Dproj(SpotLight, shadowCrd);
|
---|
| 1460 | // If the depth is larger than the stored depth, this fragment
|
---|
| 1461 | // is not the closest to the light, that is we are in shadow.
|
---|
| 1462 | // Otherwise, we're lit. Add a bias to avoid precision issues.
|
---|
| 1463 | float shadow = (depth < shadowMap + shadowBias);
|
---|
| 1464 | // Cut back-projection, that is, make sure we don't lit
|
---|
| 1465 | // anything behind the light. Theoretically, you should just
|
---|
| 1466 | // cut at w = 0, but in practice you'll have to cut at a
|
---|
| 1467 | // fairly high positive number to avoid precision issue when
|
---|
| 1468 | // coordinates approaches zero.
|
---|
| 1469 | shadow *= (shadowCrd.w > backProjectionCut);
|
---|
| 1470 | // Modulate with spotlight image
|
---|
| 1471 | shadow *= spotLight;
|
---|
| 1472 |
|
---|
| 1473 |
|
---|
| 1474 | float4 ocolor = float4(0.0, 0.0, 0.0, 0.0);
|
---|
| 1475 | float2 epsilon = float2(epsilonX, epsilonY);
|
---|
| 1476 | float4 value = tex2D(indirectTexture, subTexCoord).xyzw;
|
---|
| 1477 | float2 coords = float2(0.0, 1.0) - abs(texCoord - ( value.xy - epsilon ) );
|
---|
| 1478 | if (value.w != 0.0)
|
---|
| 1479 | {
|
---|
| 1480 | float2 newcoord = (float2(1.0, 1.0) - value.zw) + ((coords * sourceTextureSize) / sqrtNumSamples);
|
---|
| 1481 | ocolor = float4(tex2D(sourceTexture, newcoord).xyzw);
|
---|
[952] | 1482 | ocolor = float4(Ka * ocolor.xyz + (Kd * diffuse * ocolor.xyz + Ks * specular) * shadow, ocolor.w);
|
---|
[889] | 1483 | }
|
---|
| 1484 |
|
---|
| 1485 |
|
---|
| 1486 | // Shadow any light contribution except ambient
|
---|
| 1487 | return ocolor;
|
---|
| 1488 | }
|
---|
| 1489 |
|
---|
| 1490 |
|
---|
| 1491 |
|
---|
| 1492 | ]]></RmShaderCode>
|
---|
| 1493 | <RmSampler NAME="ShadowMap" API="" REGISTER="0"/>
|
---|
| 1494 | <RmSampler NAME="SpotLight" API="" REGISTER="1"/>
|
---|
| 1495 | <RmSampler NAME="indirectTexture" API="" REGISTER="2"/>
|
---|
| 1496 | <RmSampler NAME="sourceTexture" API="" REGISTER="3"/>
|
---|
| 1497 | <RmShaderConstant NAME="backProjectionCut" API="" REGISTER="2"/>
|
---|
| 1498 | <RmShaderConstant NAME="epsilonX" API="" REGISTER="6"/>
|
---|
| 1499 | <RmShaderConstant NAME="epsilonY" API="" REGISTER="7"/>
|
---|
| 1500 | <RmShaderConstant NAME="Ka" API="" REGISTER="3"/>
|
---|
| 1501 | <RmShaderConstant NAME="shadowBias" API="" REGISTER="1"/>
|
---|
| 1502 | <RmShaderConstant NAME="Kd" API="" REGISTER="4"/>
|
---|
| 1503 | <RmShaderConstant NAME="sourceTextureSize" API="" REGISTER="8"/>
|
---|
| 1504 | <RmShaderConstant NAME="sqrtNumSamples" API="" REGISTER="9"/>
|
---|
| 1505 | </RmHLSLShader>
|
---|
| 1506 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1507 | float4x4 view_proj_matrix: register(c0);
|
---|
| 1508 | float4 lightPos: register(c4);
|
---|
| 1509 | float4 view_position: register(c5);
|
---|
| 1510 | float4x4 proj_matrix: register(c6);
|
---|
| 1511 | float distanceScale: register(c10);
|
---|
| 1512 | float time_0_X: register(c11);
|
---|
| 1513 | float lightPosY;
|
---|
| 1514 |
|
---|
| 1515 | struct VS_OUTPUT {
|
---|
| 1516 | float4 Pos: POSITION;
|
---|
| 1517 | float3 normal: TEXCOORD0;
|
---|
| 1518 | float3 lightVec : TEXCOORD1;
|
---|
| 1519 | float3 viewVec: TEXCOORD2;
|
---|
| 1520 | float4 shadowCrd: TEXCOORD3;
|
---|
| 1521 | float2 texCoord: TEXCOORD4;
|
---|
| 1522 | float2 subTexCoord: TEXCOORD5;
|
---|
| 1523 | };
|
---|
| 1524 |
|
---|
| 1525 | VS_OUTPUT main(float4 Pos: POSITION,
|
---|
| 1526 | float3 normal: NORMAL,
|
---|
| 1527 | float2 color: COLOR,
|
---|
| 1528 | float2 subTexCoord: TEXCOORD0){
|
---|
| 1529 | VS_OUTPUT Out;
|
---|
| 1530 |
|
---|
| 1531 | // Animate the light position.
|
---|
| 1532 | // Comment out this code to use a static light.
|
---|
| 1533 | // In real applications this work is better done on
|
---|
| 1534 | // the CPU as it's constant for the whole scene.
|
---|
| 1535 | float3 lightPos;
|
---|
| 1536 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1537 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1538 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1539 | lightPos.y = lightPosY;
|
---|
| 1540 |
|
---|
| 1541 | Out.Pos = mul(view_proj_matrix, Pos);
|
---|
| 1542 | // World-space lighting
|
---|
| 1543 | Out.normal = normal;
|
---|
| 1544 | Out.lightVec = distanceScale * (lightPos - Pos.xyz);
|
---|
| 1545 | Out.viewVec = view_position - Pos.xyz;
|
---|
| 1546 |
|
---|
| 1547 | // Create view vectors for the light, looking at (0,0,0)
|
---|
| 1548 | // In real applications this work is better done on
|
---|
| 1549 | // the CPU as it's constant for the whole scene.
|
---|
| 1550 | float3 dirZ = -normalize(lightPos);
|
---|
| 1551 | float3 up = float3(0,0,1);
|
---|
| 1552 | float3 dirX = cross(up, dirZ);
|
---|
| 1553 | float3 dirY = cross(dirZ, dirX);
|
---|
| 1554 |
|
---|
| 1555 | // Transform into light's view space.
|
---|
| 1556 | // In real applications we would be better off using a 4x4
|
---|
| 1557 | // matrix instead, but for this shader it's cheaper to
|
---|
| 1558 | // just transpose and rotate into light's view space.
|
---|
| 1559 | float4 pos;
|
---|
| 1560 | Pos.xyz -= lightPos;
|
---|
| 1561 | pos.x = dot(dirX, Pos);
|
---|
| 1562 | pos.y = dot(dirY, Pos);
|
---|
| 1563 | pos.z = dot(dirZ, Pos);
|
---|
| 1564 | pos.w = 1;
|
---|
| 1565 |
|
---|
| 1566 | // Project it. For this sample using the normal projection
|
---|
| 1567 | // matrix suffices, however, real applications will typically
|
---|
| 1568 | // use a separate projection matrix for each light depending
|
---|
| 1569 | // on its properties such as FOV and range.
|
---|
| 1570 | float4 sPos = mul(proj_matrix, pos);
|
---|
| 1571 |
|
---|
| 1572 | // Use projective texturing to map the position of each fragment
|
---|
| 1573 | // to its corresponding texel in the shadow map.
|
---|
| 1574 | sPos.z += 10;
|
---|
| 1575 | Out.shadowCrd.x = 0.5 * (sPos.z + sPos.x);
|
---|
| 1576 | Out.shadowCrd.y = 0.5 * (sPos.z - sPos.y);
|
---|
| 1577 | Out.shadowCrd.z = 0;
|
---|
| 1578 | Out.shadowCrd.w = sPos.z;
|
---|
| 1579 |
|
---|
| 1580 | Out.subTexCoord = subTexCoord;
|
---|
| 1581 | Out.texCoord = color.xy;
|
---|
| 1582 |
|
---|
| 1583 | return Out;
|
---|
| 1584 | }
|
---|
| 1585 |
|
---|
| 1586 |
|
---|
| 1587 | ]]></RmShaderCode>
|
---|
| 1588 | <RmShaderConstant NAME="distanceScale" API="" REGISTER="10"/>
|
---|
| 1589 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="12"/>
|
---|
| 1590 | <RmShaderConstant NAME="proj_matrix" API="" REGISTER="6"/>
|
---|
| 1591 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="11"/>
|
---|
| 1592 | <RmShaderConstant NAME="view_position" API="" REGISTER="5"/>
|
---|
| 1593 | <RmShaderConstant NAME="view_proj_matrix" API="" REGISTER="0"/>
|
---|
| 1594 | </RmHLSLShader>
|
---|
| 1595 | <RmStreamMapReference NAME="Stream Mapping IndirectTexturing" API=""/>
|
---|
| 1596 | <RmTextureObject NAME="ShadowMap" API="D3D" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
|
---|
| 1597 | <RmTextureReference NAME="ShadowMap" API=""/>
|
---|
| 1598 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1599 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1600 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1601 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1602 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
| 1603 | </RmTextureObject>
|
---|
| 1604 | <RmTextureObject NAME="SpotLight" API="D3D" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
|
---|
| 1605 | <RmTextureReference NAME="SpotLight" API=""/>
|
---|
| 1606 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1607 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1608 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1609 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1610 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1611 | </RmTextureObject>
|
---|
| 1612 | <RmTextureObject NAME="indirectTexture" API="D3D" STATE_INDEX="2" VERTEX_TEXTURE="FALSE">
|
---|
| 1613 | <RmTextureReference NAME="indirectTexture" API=""/>
|
---|
| 1614 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="1" USAGE="SAMPLER_STATE"/>
|
---|
| 1615 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="1" USAGE="SAMPLER_STATE"/>
|
---|
| 1616 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
| 1617 | </RmTextureObject>
|
---|
| 1618 | <RmTextureObject NAME="sourceTexture" API="D3D" STATE_INDEX="3" VERTEX_TEXTURE="FALSE">
|
---|
| 1619 | <RmTextureReference NAME="sourceTexture" API=""/>
|
---|
[952] | 1620 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1621 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1622 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
[889] | 1623 | </RmTextureObject>
|
---|
| 1624 | </RmPass>
|
---|
| 1625 | <RmPass NAME="PlatformPass" API="D3D" PASS_INDEX="5" ENABLED="TRUE">
|
---|
| 1626 | <RmModelReference NAME="Disc" API=""/>
|
---|
| 1627 | <RmHLSLShader NAME="Vertex Shader" API="D3D" PIXEL_SHADER="FALSE" TARGET="vs_1_1" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1628 | float4x4 view_proj_matrix: register(c0);
|
---|
| 1629 | float4 lightPos: register(c4);
|
---|
| 1630 | float4 view_position: register(c5);
|
---|
| 1631 | float4x4 proj_matrix: register(c6);
|
---|
| 1632 | float distanceScale: register(c10);
|
---|
| 1633 | float time_0_X: register(c11);
|
---|
| 1634 | float lightPosY;
|
---|
| 1635 |
|
---|
| 1636 | struct VS_OUTPUT {
|
---|
| 1637 | float4 Pos: POSITION;
|
---|
| 1638 | float3 normal: TEXCOORD0;
|
---|
| 1639 | float3 lightVec: TEXCOORD1;
|
---|
| 1640 | float3 viewVec: TEXCOORD2;
|
---|
| 1641 | float4 shadowCrd: TEXCOORD3;
|
---|
| 1642 | };
|
---|
| 1643 |
|
---|
| 1644 | VS_OUTPUT main(float4 Pos: POSITION, float3 normal: NORMAL){
|
---|
| 1645 | VS_OUTPUT Out;
|
---|
| 1646 |
|
---|
| 1647 | // Animate the light position.
|
---|
| 1648 | // Comment out this code to use a static light.
|
---|
| 1649 | // In real applications this work is better done on
|
---|
| 1650 | // the CPU as it's constant for the whole scene.
|
---|
| 1651 | float3 lightPos;
|
---|
| 1652 | lightPos.x = cos(1.321 * time_0_X);
|
---|
| 1653 | lightPos.z = sin(0.923 * time_0_X);
|
---|
| 1654 | lightPos.xz = 100 * normalize(lightPos.xz);
|
---|
| 1655 | lightPos.y = lightPosY;
|
---|
| 1656 |
|
---|
| 1657 | normal = normal.xyz;
|
---|
| 1658 |
|
---|
| 1659 | Out.Pos = mul(view_proj_matrix, Pos);
|
---|
| 1660 | // World-space lighting
|
---|
| 1661 | Out.normal = normal;
|
---|
| 1662 | Out.lightVec = distanceScale * (lightPos - Pos.xyz);
|
---|
| 1663 | Out.viewVec = view_position - Pos.xyz;
|
---|
| 1664 |
|
---|
| 1665 | // Create view vectors for the light, looking at (0,0,0)
|
---|
| 1666 | // In real applications this work is better done on
|
---|
| 1667 | // the CPU as it's constant for the whole scene.
|
---|
| 1668 | float3 dirZ = -normalize(lightPos);
|
---|
| 1669 | float3 up = float3(0,0,1);
|
---|
| 1670 | float3 dirX = cross(up, dirZ);
|
---|
| 1671 | float3 dirY = cross(dirZ, dirX);
|
---|
| 1672 |
|
---|
| 1673 | // Transform into light's view space.
|
---|
| 1674 | // In real applications we would be better off using a 4x4
|
---|
| 1675 | // matrix instead, but for this shader it's cheaper to
|
---|
| 1676 | // just transpose and rotate into light's view space.
|
---|
| 1677 | float4 pos;
|
---|
| 1678 | Pos.xyz -= lightPos;
|
---|
| 1679 | pos.x = dot(dirX, Pos);
|
---|
| 1680 | pos.y = dot(dirY, Pos);
|
---|
| 1681 | pos.z = dot(dirZ, Pos);
|
---|
| 1682 | pos.w = 1;
|
---|
| 1683 |
|
---|
| 1684 | // Project it. For this sample using the normal projection
|
---|
| 1685 | // matrix suffices, however, real applications will typically
|
---|
| 1686 | // use a separate projection matrix for each light depending
|
---|
| 1687 | // on its properties such as FOV and range.
|
---|
| 1688 | float4 sPos = mul(proj_matrix, pos);
|
---|
| 1689 |
|
---|
| 1690 | // Use projective texturing to map the position of each fragment
|
---|
| 1691 | // to its corresponding texel in the shadow map.
|
---|
| 1692 | sPos.z += 10;
|
---|
| 1693 | Out.shadowCrd.x = 0.5 * (sPos.z + sPos.x);
|
---|
| 1694 | Out.shadowCrd.y = 0.5 * (sPos.z - sPos.y);
|
---|
| 1695 | Out.shadowCrd.z = 0;
|
---|
| 1696 | Out.shadowCrd.w = sPos.z;
|
---|
| 1697 |
|
---|
| 1698 | return Out;
|
---|
| 1699 | }
|
---|
| 1700 |
|
---|
| 1701 |
|
---|
| 1702 | ]]></RmShaderCode>
|
---|
| 1703 | <RmShaderConstant NAME="distanceScale" API="" REGISTER="10"/>
|
---|
| 1704 | <RmShaderConstant NAME="lightPosY" API="" REGISTER="12"/>
|
---|
| 1705 | <RmShaderConstant NAME="proj_matrix" API="" REGISTER="6"/>
|
---|
| 1706 | <RmShaderConstant NAME="time_0_X" API="" REGISTER="11"/>
|
---|
| 1707 | <RmShaderConstant NAME="view_position" API="" REGISTER="5"/>
|
---|
| 1708 | <RmShaderConstant NAME="view_proj_matrix" API="" REGISTER="0"/>
|
---|
| 1709 | </RmHLSLShader>
|
---|
| 1710 | <RmHLSLShader NAME="Pixel Shader" API="D3D" PIXEL_SHADER="TRUE" TARGET="ps_2_0" ENTRY_POINT="main"><RmShaderCode TYPE="TEXT"><![CDATA[
|
---|
| 1711 | float backProjectionCut;
|
---|
| 1712 | float Ka;
|
---|
| 1713 | float Kd;
|
---|
| 1714 | float Ks;
|
---|
| 1715 | float4 platformColor;
|
---|
| 1716 | float shadowBias;
|
---|
| 1717 | sampler ShadowMap;
|
---|
| 1718 | sampler SpotLight;
|
---|
| 1719 |
|
---|
| 1720 | float4 main( float3 normal: TEXCOORD0,
|
---|
| 1721 | float3 lightVec: TEXCOORD1,
|
---|
| 1722 | float3 viewVec: TEXCOORD2,
|
---|
| 1723 | float4 shadowCrd: TEXCOORD3) : COLOR
|
---|
| 1724 | {
|
---|
| 1725 | normal = normalize(normal);
|
---|
| 1726 |
|
---|
| 1727 | // Radial distance
|
---|
| 1728 | float depth = length(lightVec);
|
---|
| 1729 | // Normalizes light vector
|
---|
| 1730 | lightVec /= depth;
|
---|
| 1731 |
|
---|
| 1732 | // Standard lighting
|
---|
| 1733 | float diffuse = saturate(dot(lightVec, normal));
|
---|
| 1734 | float specular = pow(saturate(dot(reflect(-normalize(viewVec), normal), lightVec)), 16);
|
---|
| 1735 |
|
---|
| 1736 | // The depth of the fragment closest to the light
|
---|
| 1737 | float shadowMap = tex2Dproj(ShadowMap, shadowCrd);
|
---|
| 1738 | // A spot image of the spotlight
|
---|
| 1739 | float spotLight = tex2Dproj(SpotLight, shadowCrd);
|
---|
| 1740 | // If the depth is larger than the stored depth, this fragment
|
---|
| 1741 | // is not the closest to the light, that is we are in shadow.
|
---|
| 1742 | // Otherwise, we're lit. Add a bias to avoid precision issues.
|
---|
| 1743 | float shadow = (depth < shadowMap + shadowBias);
|
---|
| 1744 | // Cut back-projection, that is, make sure we don't lit
|
---|
| 1745 | // anything behind the light. Theoretically, you should just
|
---|
| 1746 | // cut at w = 0, but in practice you'll have to cut at a
|
---|
| 1747 | // fairly high positive number to avoid precision issue when
|
---|
| 1748 | // coordinates approaches zero.
|
---|
| 1749 | shadow *= (shadowCrd.w > backProjectionCut);
|
---|
| 1750 | // Modulate with spotlight image
|
---|
| 1751 | shadow *= spotLight;
|
---|
| 1752 |
|
---|
| 1753 | // Shadow any light contribution except ambient
|
---|
| 1754 | return Ka * platformColor + (Kd * diffuse * platformColor + Ks * specular) * shadow;
|
---|
| 1755 |
|
---|
| 1756 | }
|
---|
| 1757 |
|
---|
| 1758 |
|
---|
| 1759 |
|
---|
| 1760 |
|
---|
| 1761 |
|
---|
| 1762 | ]]></RmShaderCode>
|
---|
| 1763 | <RmSampler NAME="ShadowMap" API="" REGISTER="0"/>
|
---|
| 1764 | <RmSampler NAME="SpotLight" API="" REGISTER="1"/>
|
---|
| 1765 | <RmShaderConstant NAME="Ks" API="" REGISTER="3"/>
|
---|
| 1766 | <RmShaderConstant NAME="Ka" API="" REGISTER="1"/>
|
---|
| 1767 | <RmShaderConstant NAME="Kd" API="" REGISTER="2"/>
|
---|
| 1768 | <RmShaderConstant NAME="backProjectionCut" API="" REGISTER="0"/>
|
---|
| 1769 | <RmShaderConstant NAME="platformColor" API="" REGISTER="4"/>
|
---|
| 1770 | <RmShaderConstant NAME="shadowBias" API="" REGISTER="5"/>
|
---|
| 1771 | </RmHLSLShader>
|
---|
| 1772 | <RmStreamMapReference NAME="PN Stream Mapping" API=""/>
|
---|
| 1773 | <RmTextureObject NAME="SpotLight" API="D3D" STATE_INDEX="1" VERTEX_TEXTURE="FALSE">
|
---|
| 1774 | <RmTextureReference NAME="SpotLight" API=""/>
|
---|
| 1775 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1776 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1777 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1778 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1779 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1780 | </RmTextureObject>
|
---|
| 1781 | <RmTextureObject NAME="ShadowMap" API="D3D" STATE_INDEX="0" VERTEX_TEXTURE="FALSE">
|
---|
| 1782 | <RmTextureReference NAME="ShadowMap" API=""/>
|
---|
| 1783 | <RmState NAME="D3DSAMP_ADDRESSU" API="D3D" STATE="1" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1784 | <RmState NAME="D3DSAMP_ADDRESSV" API="D3D" STATE="2" VALUE="3" USAGE="SAMPLER_STATE"/>
|
---|
| 1785 | <RmState NAME="D3DSAMP_MAGFILTER" API="D3D" STATE="5" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1786 | <RmState NAME="D3DSAMP_MINFILTER" API="D3D" STATE="6" VALUE="2" USAGE="SAMPLER_STATE"/>
|
---|
| 1787 | <RmState NAME="D3DSAMP_MIPFILTER" API="D3D" STATE="7" VALUE="0" USAGE="SAMPLER_STATE"/>
|
---|
| 1788 | </RmTextureObject>
|
---|
| 1789 | </RmPass>
|
---|
| 1790 | </RmDirectXEffect>
|
---|
| 1791 | <RmColorVariable NAME="modelColor" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" VALUE_0="0.360784" VALUE_1="0.451843" VALUE_2="1.000000" VALUE_3="1.000000"/>
|
---|
| 1792 | <Rm2DTextureVariable NAME="Wood Floor" API="" ARTIST_EDITABLE="TRUE" VARIABLE_SEMANTIC="" FILE_NAME="Wood.dds" ORIGIN="0"/>
|
---|
| 1793 | <RmStreamMap NAME="PN Stream Mapping" API="">
|
---|
| 1794 | <RmStream NAME="Normal3" API="" STRIDE="32">
|
---|
| 1795 | <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0"/>
|
---|
| 1796 | <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0"/>
|
---|
| 1797 | <RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0"/>
|
---|
| 1798 | </RmStream>
|
---|
| 1799 | </RmStreamMap>
|
---|
| 1800 | <RmStreamMap NAME="Stream Mapping IndirectTexturing" API="">
|
---|
| 1801 | <RmStream NAME="Stream 0" API="" STRIDE="36">
|
---|
| 1802 | <RmStreamChannel NAME="Position_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="0" USAGE_INDEX="0"/>
|
---|
| 1803 | <RmStreamChannel NAME="TexCoord_0" API="" DATA_SIZE="8" DATA_TYPE="1" REGISTER="0" USAGE="5" USAGE_INDEX="0"/>
|
---|
| 1804 | <RmStreamChannel NAME="Color_0" API="" DATA_SIZE="4" DATA_TYPE="4" REGISTER="0" USAGE="10" USAGE_INDEX="0"/>
|
---|
| 1805 | <RmStreamChannel NAME="Normal_0" API="" DATA_SIZE="12" DATA_TYPE="2" REGISTER="0" USAGE="3" USAGE_INDEX="0"/>
|
---|
| 1806 | </RmStream>
|
---|
| 1807 | </RmStreamMap>
|
---|
| 1808 | <RmModelData NAME="ScreenAlignedQuad" API="" FILE_NAME=".\ScreenAlignedQuad.3ds" ORIENTATION="0"/>
|
---|
| 1809 | <RmModelData NAME="leavesBillboardCloud" API="" FILE_NAME=".\chestnutLeavesBillboardCloudGrouped.x" ORIENTATION="0"/>
|
---|
| 1810 | <RmModelData NAME="Disc" API="" FILE_NAME=".\disc.x" ORIENTATION="0"/>
|
---|
| 1811 | <RmModelData NAME="trunk" API="" FILE_NAME=".\chestnutTrunkLevel3.x" ORIENTATION="0"/>
|
---|
| 1812 | <RmModelData NAME="Sphere" API="" FILE_NAME=".\Sphere.3ds" ORIENTATION="0"/>
|
---|
| 1813 | </RmEffectGroup>
|
---|
[952] | 1814 | <RmVectorVariable NAME="view_position" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewPosition" VALUE_0="-71.222672" VALUE_1="-128.383163" VALUE_2="-17.588064" VALUE_3="1.000000" MIN="-10.000000" MAX="10.000000" CLAMP="FALSE" NORMALIZE="FALSE"/>
|
---|
| 1815 | <RmMatrixVariable NAME="view_proj_matrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="ViewProjection" VALUE_0="1.016186" VALUE_1="-0.587463" VALUE_2="0.173118" VALUE_3="0.000000" VALUE_4="0.448028" VALUE_5="0.076275" VALUE_6="-2.371050" VALUE_7="-0.000046" VALUE_8="0.482154" VALUE_9="0.869111" VALUE_10="0.119065" VALUE_11="147.012634" VALUE_12="0.481672" VALUE_13="0.868242" VALUE_14="0.118946" VALUE_15="147.865631"/>
|
---|
[889] | 1816 | <RmMatrixVariable NAME="proj_matrix" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Projection" VALUE_0="1.186472" VALUE_1="0.000000" VALUE_2="0.000000" VALUE_3="0.000000" VALUE_4="0.000000" VALUE_5="2.414213" VALUE_6="0.000000" VALUE_7="0.000000" VALUE_8="0.000000" VALUE_9="0.000000" VALUE_10="1.001001" VALUE_11="-1.001001" VALUE_12="0.000000" VALUE_13="0.000000" VALUE_14="1.000000" VALUE_15="0.000000"/>
|
---|
[952] | 1817 | <RmFloatVariable NAME="time_0_X" API="" ARTIST_EDITABLE="FALSE" VARIABLE_SEMANTIC="Time0_X" VALUE="87.033546" MIN="-1.000000" MAX="1.000000" CLAMP="FALSE"/>
|
---|
[889] | 1818 | </RmEffectWorkspace>
|
---|
| 1819 | </RENDER_MONKEY>
|
---|