Editing Rich Appearance Format (RAF)
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 9: | Line 9: | ||
=RAF contents= | =RAF contents= | ||
It must comply with these | |||
It must comply with these restrictions : | |||
-Textures size max: 15 mb ( 15728640 Bytes ) ( on [[RSX]] local memory at run time ) | -Textures size max: 15 mb ( 15728640 Bytes ) ( on [[RSX]] local memory at run time ) | ||
-Geometry & script size max: 1 mb ( 1048576 Bytes ) ( on main memory at run time ) | -Geometry & script size max: 1 mb ( 1048576 Bytes ) ( on main memory at run time ) | ||
-Actor size max: 1.25mb ( 1310720 Bytes ) ( in the intermediate buffer ) | -Actor size max: 1.25mb ( 1310720 Bytes ) ( in the intermediate buffer ) | ||
-Actor number max: 128 | |||
-Cameras: 1 | -Cameras: 1 | ||
-Lights: 2 (ambient | -Lights: 2 (ambient + point) | ||
-Scripts: 1 | -Scripts: 1 | ||
-Models: 64 (with 8 animations each model) | |||
==RAF Scene (.XML)== | ==RAF Scene (.XML)== | ||
Line 35: | Line 31: | ||
The camera and lights are a bit special, there are different 2 ways to integrate them in the scene because are not visible (is imposible to see the camera because you are looking at the scene from inside of the camera) and lights are just light rays (the emitter is not visible, only the rays)... For this reason camera and lights can be completly defined in the scene.xml (so no need to create 3D object for them)... but they also admits to be defined as 3D objects (for this method is needed to create 3D objects for them, this allows for more complex lights animations or cinematic effects like camera travellings) | The camera and lights are a bit special, there are different 2 ways to integrate them in the scene because are not visible (is imposible to see the camera because you are looking at the scene from inside of the camera) and lights are just light rays (the emitter is not visible, only the rays)... For this reason camera and lights can be completly defined in the scene.xml (so no need to create 3D object for them)... but they also admits to be defined as 3D objects (for this method is needed to create 3D objects for them, this allows for more complex lights animations or cinematic effects like camera travellings) | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<?xml version='1.0' encoding="UTF-8"?> | <?xml version='1.0' encoding="UTF-8"?> | ||
<raf angle_unit="radian/degree"> | <raf angle_unit="radian/degree"> | ||
<!-- model --> | |||
<model id="model" file="model.dae" vertex_color="disable/enable" > | <model id="model" file="model.dae" vertex_color="disable/enable" > | ||
<animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" /> | <animation id="animation" file="animation.dae" start="1" end="100" sampling_rate="1" /> | ||
</model> | </model> | ||
<!-- material --> | |||
<material id="material" effect="pure_texture/pure_texture_alpha_0_depth_1/pure_texture_alpha_1_depth_0/pure_texture_alpha_0_depth_0/basic_lighting/basic_lighting_alpha_0/basic_lighting_edge_lit/basic_lighting_edge_lit_alpha_0/basic_lighting_alpha_add" > | <material id="material" effect="pure_texture/pure_texture_alpha_0_depth_1/pure_texture_alpha_1_depth_0/pure_texture_alpha_0_depth_0/basic_lighting/basic_lighting_alpha_0/basic_lighting_edge_lit/basic_lighting_edge_lit_alpha_0/basic_lighting_alpha_add" > | ||
<texture file="texture.jpg/texture.dds" type="color_map/normal_map/specular_map/tangent_normal_map" /> | <texture file="texture.jpg/texture.dds" type="color_map/normal_map/specular_map/tangent_normal_map" /> | ||
</material> | </material> | ||
<!-- actor --> | |||
<actor id="actor" model="model" material="material" position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a" uv_scale="u,v" uv_offset="u,v" anim_weight="anim0, anim1, anim2, anim3" anim_speed="anim0, anim1, anim2, anim3" anim_time="anim0, anim1, anim2, anim3" /> | <actor id="actor" model="model" material="material" position="x,y,z" rotation="x,y,z" scale="x,y,z" color="r,g,b,a" uv_scale="u,v" uv_offset="u,v" anim_weight="anim0, anim1, anim2, anim3" anim_speed="anim0, anim1, anim2, anim3" anim_time="anim0, anim1, anim2, anim3" /> | ||
<!-- camera --> | |||
<camera id="camera" file="camera.dae" type="perspective/orthographic" yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" /> | <camera id="camera" file="camera.dae" type="perspective/orthographic" yfov="1" ymag="1" znear="1" zfar="1" position="x,y,z" direction="x,y,z" up="x,y,z" /> | ||
<!-- light --> | |||
<light id="light" file="light.dae" type="ambient/point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" /> | <light id="light" file="light.dae" type="ambient/point" color="r,g,b" position="x,y,z" direction="x,y,z" attenuation="1,1,1" /> | ||
<!-- script --> | |||
<script file="script.js" /> | <script file="script.js" /> | ||
</raf> | </raf> | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
Line 67: | Line 67: | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Root Element: <raf> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| angle_unit || Unit of angles in the scene file (radian/degree) | | angle_unit || Unit of angles in the scene file (radian/degree) | ||
|- | |||
|} | |} | ||
Line 77: | Line 81: | ||
===Model=== | ===Model=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <model> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed as the model attribute of the <actor> element | | id || String accessed as the model attribute of the <actor> element | ||
Line 86: | Line 93: | ||
| vertex_color || Usage (or lack) of color regarding each vertex | | vertex_color || Usage (or lack) of color regarding each vertex | ||
*enable/disable | *enable/disable | ||
|- | |||
|} | |} | ||
====Animation==== | ====Animation==== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|lightblue|white}} Sub Element: <animation> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed by scripts | | id || String accessed by scripts | ||
Line 102: | Line 113: | ||
|- | |- | ||
| sampling_rate || Sampling rate | | sampling_rate || Sampling rate | ||
|- | |||
|} | |} | ||
===Material=== | ===Material=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <material> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed as the material attribute of the <actor> element | | id || String accessed as the material attribute of the <actor> element | ||
Line 122: | Line 137: | ||
* basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation | * basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation | ||
* sce01 : internal/reserved ? (used in coldboot.raf compiled with raf tools v1.00) | * sce01 : internal/reserved ? (used in coldboot.raf compiled with raf tools v1.00) | ||
|- | |||
|} | |} | ||
====Texture==== | ====Texture==== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | ! colspan="2" {{cellcolors|lightblue|white}} Sub Element: <texture> | ||
! Attribute | |- | ||
! Attribute | |||
! Description | |||
|- | |- | ||
| file || Path to the texture file | | file || Path to the texture file | ||
Line 136: | Line 154: | ||
*specular_map : Specular strength (G) | *specular_map : Specular strength (G) | ||
*tangent_normal_map : Normal in tangent space, valid only for models with TEXTANGENT (RGB) | *tangent_normal_map : Normal in tangent space, valid only for models with TEXTANGENT (RGB) | ||
|- | |||
|} | |} | ||
===Actor=== | ===Actor=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <actor> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed by scripts | | id || String accessed by scripts | ||
Line 151: | Line 173: | ||
| position || Vector to the initial position (x, y, z) | | position || Vector to the initial position (x, y, z) | ||
|- | |- | ||
| rotation || Vector to the initial rotation angle (x, y, z) | | rotation || Vector to the initial rotation angle (x-axis, y-axis, z-axis) | ||
|- | |- | ||
| scale || Vector to the initial scale (x, y, z) | | scale || Vector to the initial scale (x, y, z) | ||
Line 166: | Line 188: | ||
|- | |- | ||
| anim_time || Vector to the animation's initial time (anim0, anim1, anim2, anim3) | | anim_time || Vector to the animation's initial time (anim0, anim1, anim2, anim3) | ||
|- | |- | ||
| zsort || String indicating the z sort type (unspecified/back to front/front to back) | | zsort || String indicating the z sort type (unspecified/back to front/front to back) | ||
|- | |||
|} | |} | ||
===Camera=== | ===Camera=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <camera> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed by scripts | | id || String accessed by scripts | ||
Line 196: | Line 220: | ||
|- | |- | ||
| up || Vector to the initial up direction (x, y, z) | | up || Vector to the initial up direction (x, y, z) | ||
|- | |||
|} | |} | ||
===Light=== | ===Light=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <light> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |- | ||
| id || String accessed by scripts | | id || String accessed by scripts | ||
Line 216: | Line 244: | ||
|- | |- | ||
| attenuation || Vector to the initial attenuation (zero-order, first-order, second-order) | | attenuation || Vector to the initial attenuation (zero-order, first-order, second-order) | ||
|- | |||
|} | |} | ||
===Script=== | ===Script=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| | |- | ||
! Attribute | ! colspan="2" {{cellcolors|blue|white}} Element: <script> | ||
|- | |||
! Attribute | |||
! Description | |||
|- | |||
|- | |- | ||
| file || Path to the script file | | file || Path to the script file | ||
|- | |||
|} | |} | ||
Line 286: | Line 320: | ||
=Links= | =Links= | ||
*RAF pages in other wiki/s | *RAF pages in other wiki/s | ||
** | **http://dudu.clx.free.fr/wiki/index.php?title=PS3RAF | ||
**http://ps3.duduclx.fr/index.php?title=Th%C3%A8mes_dynamiques_PS3 | **http://ps3.duduclx.fr/index.php?title=Th%C3%A8mes_dynamiques_PS3 | ||
** | **http://dudu.clx.free.fr/wiki/index.php?title=PS3Them | ||
*Interesting info about Animations/3D support in themes | *Interesting info about Animations/3D support in themes http://www.ps3hax.net/showthread.php?t=28426 | ||
*See also: [[Qt Resource Container (QRC)]] | *See also: [[Qt Resource Container (QRC)]] | ||