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)== | ||
{{Boxcode|content=<syntaxhighlight lang="xml"> | |||
{{Boxcode| | |||
<?xml version='1.0' encoding="UTF-8"?> | <?xml version='1.0' encoding="UTF-8"?> | ||
<raf | <raf> | ||
<!-- model --> | |||
<model id=" | <model id="id_model" file="model.dae" vertex_color="" > | ||
<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 id=" | <!-- material --> | ||
<texture file="texture.jpg | <material id="id_material" effect="pure_texture" > | ||
<texture file="texture.jpg" type="color_map" /> | |||
</material> | </material> | ||
<actor id=" | <!-- actor --> | ||
<actor id="name" model="id_model" material="id_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 id=" | <!-- camera --> | ||
<camera id="name" 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 id=" | <!-- light --> | ||
<light id="name" 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> | |||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
*Notes | *Notes | ||
Line 62: | Line 53: | ||
**Time is in seconds | **Time is in seconds | ||
**A vector (in code) is composed by a group of datas, the number or the type of this datas can be different: | **A vector (in code) is composed by a group of datas, the number or the type of this datas can be different: | ||
***For 3D space | ***For 3D space <x, y, z> are the values of the axis that defines a point, rotation, scale, a direction etc... | ||
***For colors | ***For colors <r, g, b, a> are red, green, blue channels, and alpha for transparency | ||
{| 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 71: | ||
===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 83: | ||
| 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 103: | ||
|- | |- | ||
| 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 121: | Line 126: | ||
* basic_lighting_edge_lit_alpha_0 : Remove alpha from basic_lighting_edge_lit | * basic_lighting_edge_lit_alpha_0 : Remove alpha from basic_lighting_edge_lit | ||
* basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation | * basic_lighting_alpha_add : Derive blending of basic_lighting by addition calculation | ||
|- | |||
|} | |} | ||
====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 143: | ||
*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 162: | ||
| 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 177: | ||
|- | |- | ||
| 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 | ||
|- | |- | ||
| file || Path to the camera's .dae file exported by the DCC tool (if .dae is used) | | file || Path to the camera's .dae file exported by the DCC tool (if .dae is used) | ||
|- | |- | ||
Line 196: | Line 209: | ||
|- | |- | ||
| 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 | ||
|- | |- | ||
| file || Path to the light's .dae file exported by the DCC tool (if .dae is used) | | file || Path to the light's .dae file exported by the DCC tool (if .dae is used) | ||
|- | |- | ||
Line 216: | Line 233: | ||
|- | |- | ||
| 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 229: | Line 252: | ||
Dae files are geometric 3D objects, generated by collada plugin from one of the collada supported 3D tools (blender, maya, 3dmax, etc...) | Dae files are geometric 3D objects, generated by collada plugin from one of the collada supported 3D tools (blender, maya, 3dmax, etc...) | ||
The raf scene.xml takes .dae files as inputs, this files are converted to .edge and .skel (both seems raw geometric vertex info | The raf scene.xml takes .dae files as inputs, this files are converted to .edge and .skel (both seems raw geometric vertex info) | ||
Dae files are xml based, and contains references to the libraries that were used by the 3D tool that build the object, this info is a collada standard and most of it is ignored when converted to .skel and .edge... in other words, most of the .dae info is lost when the .dae file is stored inside the .raf file (though is supposed to have some relationship with the graphic libraries availables in ps3 firmware) | Dae files are xml based, and contains references to the libraries that were used by the 3D tool that build the object, this info is a collada standard and most of it is ignored when converted to .skel and .edge... in other words, most of the .dae info is lost when the .dae file is stored inside the .raf file (though is supposed to have some relationship with the graphic libraries availables in ps3 firmware) | ||
Line 286: | Line 309: | ||
=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)]] | ||