Formato de Escenas - GRF (GRanada File)

escena ::=
lista_bloques .

lista_bloques ::=
bloque |
bloque lista_bloques |
nada .

bloque ::=
bloque_descripcion |
bloque_malla |
bloque_malla_luz |
bloque_fuente_luz |
bloque_include |
bloque_transformacion |
bloque_definicion |
nada .


bloque_descripcion :=
params begin lista_parametros end

lista_parametros :=
dependent observador

observador :=
view vector3D  .


bloque_malla ::=
begin mesh
     uso  listaVertices   listaCaras
end mesh .

bloque_malla_luz ::=
mesh light   bloque_malla_basica  

bloque_malla_basica ::=
begin   listaVertices   listaCaras   end

bloque_fuente_luz::=
light begin region [definicion_color] end

region::=
vector3D   arista   arista

arista ::=
vector3D

bloque_include ::=
include nombreFichero


bloque_transformacion
transform transformacion begin lista_bloques end

transformacion ::=
transformacion transformacion_elemental  |
transformacion_elemental

transformacion_elemental::=
scale vector3D  |
rotation vector3D  |
translation vector3D  .


bloque_definicion :=
definiciones begin lista_bloques end

definiciones ::=
definicion_elemental |
definiciones definicion_elemental |
nada .

definicion_elemental ::=
def identificador  =  cuerpo_definicion

cuerpo_definicion ::=
definicion_textura |
definicion_brdf |-
definicion_pdf.

definicion_textura ::=
texture nombreFichero .

definicion_brdf ::=
brdf  nombreFichero |  
brdf  instancia_BRDF .

instancia_BRDF ::=
PerfectDiffuse_BRDF | PerfectSpecular_BRDF | Phong_BRDF |
Blinn_BRDF | Torrance-Sparrow_BRDF |
Cilindrico-PF_BRDF | HTSG_BRDF |
Ward_BRDF | Lewis_BRDF | Schlick_BRDF |
Oren-Nayar_BRDF | Strauss_BRDF | Lafortune_BRDF |
Shirley_BRDF | Minnaert_BRDF |
BeardMaxwell_BRDF | combinacion_BRDFs .

PerfectDiffuse_BRDF ::=
diffuse kd = valor.

PerfectSpecular_BRDF ::=
specular ks = valor.

Phong_BRDF ::=
phong  n =valor ks =valor kd =valor.

Blinn_BRDF ::=
blinn  n =valor ks =valor kd =valor.

Torrance-Sparrow_BRDF ::=
torrance  rough =valor nreal =valor nimag =valor ks =valor kd =valor .

Cilindrico-PF_BRDF ::=
poulin  d =valor h =valor n =valor ks =valor kd =valor.

HTSG_BRDF ::=
he  sigma =valor tau =valor lambda =valor .

Ward_BRDF ::=
ward  sx =valor sy =valor ks =valor kd =valor .

Lewis_BRDF ::=
lewis  n =valor ks =valor kd =valor .

Schlick_BRDF ::=
schlick  SC =valor Sr =valor Sp =valor Ly =valor_logico [ DC =valor Dr =valor Dp =valor ] .

Oren-Nayar_BRDF ::=
oren  s =valor r =valor .

Strauss_BRDF ::=
strauss  s =valor m =valor ks =valor kd =valor .

Lafortune_BRDF ::=
lafortune  Cx =valor Cy =valor Cz =valor n =valor kp =valor.

Shirley_BRDFs ::=
coupled  Rm =valor

Minnaert_BRDFs ::=
minnaert  k =valor kd =valor

BeardMaxwell_BRDFs ::=
beardmaxwell  omega =valor tau =valor nreal =valor nimag =valor Rs =valor Rd =valor Rv =valor

combinacion_BRDFs ::=
combine  base_Brdf, base_Brdf*

base_BRDF ::=
valor identificador |
nada .

definicion_pdf::=
pdf instancia_PDF .

instancia_PDF ::=
Uniform_PDF | Sphere_PDF | Hemisphere_PDF |
Adaptive_PDF | Anisotropic_PDF |
Rejection_PDF | Factored_PDF .

Uniform_PDF ::=
diffuse

Sphere_PDF ::=
sphere  exp =valor

Hemisphere_PDF ::=
hemisphere  exp =valor

Adaptive_PDF ::=
adaptive  nQT =valor aniso =valor_logico

Anisotropic_PDF ::=
anisotropic  nu =valor nv =valor

Rejection_PDF ::=
reject 

Factored_PDF ::=
factored  uTh =valor uPh =valor pTh =valor pPh =valor J =valor K =valor half =valor_logico


uso ::=
[usoTextura] [usoBrdf] .

usoTextura ::=
texture identificador .

usoBrdf ::=
brdf identificador  .


listaVertices ::=
begin vertex  vertices  end vertex |
begin vertexs  vertices  end vertexs |
begin vertexes  vertices  end vertexes .

vertices ::=
vertice |
vertice vertices |
nada .

vertice ::=
[normal vector3D] [listaIrradiancias] [uv vector2D] vector3D.

listaIrradiancias ::=
irradiancia |
begin list (rayo irradiancia)* end list .

rayo::=
ray vector3D  .

irradiancia::=
irad vector3D  .

vector3D ::=
(   valor, valor, valor )  .

vector2D::=
(   valor, valor )  .

listaCaras ::=
begin faces  caras  end faces.

caras ::=
caras cara |  
definicion_color  cara |  
nada .

cara ::=
nVertices ( posicion* ) |
( posicion , posicion* ) .

nVertices ::=
literal_entero  .

posicion ::=
literal_entero  .


nombreEscena :=
nombreFichero .

nombreFichero ::=
<cadena > .

colorValue::=
( valor, valor, valor ) .

cadena::=
"conjunto de caracteres Unicode" .

valor_logico::=
true | false .

valor::=
literal_real |
literal_entero ;

literal_real =
( decimales "." [ decimales ] [ exponente ] [ sufijo_tipo ] ) |
( "." decimales [ exponente ] [ sufijo_tipo ] ) |
( decimales [ exponente ] [ sufijo_tipo ] ) . ;

decimales ::=
0..9 .

exponente ::=
"e" [ "+" / "-" ] decimales . .

sufijo_tipo ::=
"f" |
"d" .

literal_entero ::=
0..9 .

identificador ::=
a..z, A..Z, ,0..9, $, _ .

comentario ::=
// cadena .

nada ::=
;

Anterior

Última modificación: 13 de Abril de 2007