Monday, February 23, 2009

AOVs & rendermanCode

Cuando instalé la version 8.0.1 de 3delight, pense en como implementar código que ya existia en nodos que pudieran conectarse cuando fueran necesarios, que permitieran entradas o salidas con nodos de maya (en el hypershade) y sobre todo que permitieran definir AOVs (render passes). Primero pense en compilar archivos .sl y quedarme con .sdl que tuviera las pasadas mas comunes: constant color, diffuse, specular, reflection, occlusion, subsurface scattering, normals, depth y un par de mattes. Con cada variación en cada pasada; el código creció. Utilizando headers y separando secciones se tiene organización, pero no es posible conectar un "file node" a los sdls.

La respuesta estaba en el nodo rendermanCode. Aqui se pueden definir variables (shading parameters) y el código que utiliza esas variables (shading code). También se pueden definir variables de salida que se conectan a otros nodos usando el hypershade y también variables que podemos usar como AOVs. Asi descartartamos fragmentos cuando no son necesarios.

Con la versión 8.0.1, tenia un problema con la pasada de environment reflection y subsurface: un poco del reflejo se sumaba al subsurface. Al parecer entre esa version y la que estoy usando ahora (8.0.39), se corrigió ese "detalle" y las pasadas ya no tienen mas errores.

No comments: