Raytracing project/es

Este es el proyecto de desarrollo de la implementación de un módulo de Raytracing en FreeCAD. Sigue las reglas de la metodología | Getting things done. Los proyectos se recogen en el Mapa de desarrollo.

Propósito y principios
Este proyecto pretende actualizar el [Raytracing_Module/es|módulo de renderizado] que actualmente utiliza Povray, un renderizador parcial que proporciona unos resultados satisfactorios y permitir utilizar renderizadores más modernos como Lux Render, Yafaray o Indigo.

También proporcionar un interfaz genérico que permita utilizar múltiples back-ends de renderizado con FreeCad. Proporcionando un interfaz de programación más genérico se permitirá crear módulos de renderizado de forma más sencilla.

El interfaz permitirá tanto rederizadores en código libre como renderizadores propietarios externos que se puedan utilizar para crear un archivo de escena compatible y lanzar un proceso separado en modo oculto. El resultado se podrá previsualizar dentro de Freecad directamente abriendo el archivo temporal de salida (si está disponible).

Cada renderizador será un plugin dentro de un interfaz genérico y proporcionará materiales y modos de renderizado compatibles.

Resultado
Excelentes visualizaciones!!! Producir resultados de alta calidad de piezas con archivos de Freecad y proporcionar una interfaz muy simple con parámetros por defecto para permitir ráoidas instalaciones para el renderizado y la previsualización.

La interfaz de usuario debería permitir situaciones más complejas y posiblemente previsualizar sus cambios tales como el modificar los parámetros de iluminación, luces y sus posiciones. Sin embargo, la intención no es proporcionar una suite de renderizado repleta de características.

Tormenta de ideas
'Debe' crearse una biblioteca de materiales para cada plugin de renderizado con parámetros por defecto. Las propiedades de los materiales se podrán cambiar. Los parámetros por defecto de la escena deberían permitir a los usuarios con poca experiencia con los renderizadores producir buenas visualizaciones en poco tiempo.

Organización
La interfaz genérica se está creando actualmente y para comprobar la integración Lux render, un renderizador imparcial será implementado en primer lugar. El trabajo actualmente está realizado por completo por mrlukeparry en su ramal de renderizaqdo Github Render Branch.

Actualmente es posible renderizar objetos con Lux Render:



Featured is a part that was creating using PartDesign/Sketcher then rendered using the new render workbench being developed in Lux Render. Lux Render allows nice effects such as DOF to be created to improve realism.

Next actions

 * Create the Abstraction to provide the interface between renderers (Done)
 * Implement an interface for describing generic materials and collecting these (Done)
 * Implement an interface for describing render presets (Done)
 * Implement an interface for describing templates (Done)
 * Implement a feature to store all this information permanently (WIP)
 * Create a workbench environment for displaying the output (Done)
 * Create workbench tools for changing render properties (Done)
 * Create workbench tools for browsing, changing and applying materials to part features (Done)
 * Create automake scripts (WIP)
 * Remove any GUI dependencies from Raytracing/App (Done)
 * Bounding Box data structure should not use coin3d SbBox3f (Done)
 * QWidget Included in QProcess for some reason (Fixed)
 * Test compatibility with Windows (in progress)
 * Update Libpack to include QT 4.7 - QT 4.8
 * Remove compiler warnings and errors
 * Implement saving of Material Properties (Done)
 * Tidying the QML interface (WIP)
 * Creating Render Templates / Render Materials / Render Presets
 * Create a blender scene to lux template converter
 * Convert LuxBlender Materials .lbm (http://www.luxrender.net/lrmdb/en/material/) to useful Render Materials
 * Create python bindings for Render Materials, Cameras, Lights
 * Create a RenderCamera Document object
 * Allow scene template to be imported into the render feature.
 * User defined preset/material/template directories
 * Improve the View Provider
 * Convert Povray/Yafaray to use the new Render Module Infrastructure
 * Testing