Recomendado aspectos de programación en 3D para la luz / laser demuestra el simulador?

StackOverflow https://stackoverflow.com/questions/1527471

  •  20-09-2019
  •  | 
  •  

Pregunta

Hola chicos, me gustaría desarrollar una luz láser / espectáculo editor y simulador, y para esto, por supuesto, voy a aprender algo de programación gráfica. Estoy pensando en usar C # y XNA.

Me preguntaba qué aspectos de la programación de gráficos que debería investigar o centrarse en el proyecto dado que estoy trabajando. Soy nuevo en el gráfico de programación, así que no sé mucho al respecto, pero por ejemplo me imagino algo que podría mirar en lo haría ( posiblemente? ) sea iluminación volumétrica.

Por ejemplo, ¿cuál sería una forma práctica para ir sobre la prestación de un 'láser' de variada anchura / color? Leí en alguna parte que acaba de dibujar un cilindro y aplicar un sombreado para ella, me gustaría confirmar que este es el camino.

Dado que esto parece un gran proyecto, estaba pensando en empezar por la creación de fuentes de luz y que les confieren propiedades para que pueda manipular fácilmente. He (des) leído que sólo una cierta cantidad de luz se puede representar en un momento dado, creo ocho. ¿Esto sólo se aplica a las luces de ambiente? Teniendo en cuenta esta posible limitación, y el hecho de que la mayoría de las luces Voy a utilizar serán de dirección, tales como cabeceras de las luces o láser, lo que sería una forma diferente de hacer que estos? Es eso lo que sería iluminación volumétrica?

sólo me gustaría conseguir algunas cosas claras antes de sumergirme en él. Ya que soy nuevo en esto que probablemente no hacer el mejor uso de las palabras, así que si algo no tiene sentido por favor hágamelo saber. Gracias y perdón por mi ignorancia.

¿Fue útil?

Solución

La respuesta a esto depende del nivel de sofisticación que usted necesita en su simulación de pantalla. gráficos por ordenador es en última instancia una simulación del transporte de la luz; que la simulación puede ser tan sofisticado como el cálculo de la fracción de luz láser desviada por partículas en la atmósfera a punto ocular del espectador, o tan simple como dibujando una línea. Probar el efecto de cilindro y ver si funciona para su proyecto. Si necesita algo más sofisticado, mira en la programación de sombreado (usando Cg, por ejemplo), y el sombreado volumétrica como usted ha mencionado; también efectos de post-procesamiento de incandescencia pueden ser útiles. Para OpenGL, creo que hay un límite de 8? fuentes de luz en una escena, pero que posiblemente podrían evitar este límite por hacer su propia lógica de sombreado.

Otros consejos

Bueno, si es sólo para mostrar la luz simulaciones Me imagino que tu vas a necesitar una gran cantidad de efectos de iluminación personalizados - por lo que independientemente si decide utilizar XNA o DirectX recta la mejor opción sería comenzar por el aprendizaje de idiomas de sombreado y cómo programar diversos efectos de iluminación de usarlos. Una vez que se reproduce el tipo de iluminación láser que desea, entonces se puede experimentar con los polígonos que desea utilizar para representar a los láseres. (He utilizado el método del cilindro en algunos de mis trabajos para fines personales, pero no estoy seguro de lo bien cilindros rectos son adecuados para su propósito).

A pesar de que es más rápido, creo que es mejor no utilizar la iluminación de hardware de vainilla debido a sus limitaciones. sombreadores de píxeles que pueden ayudar con la tarea. También es posible que desee elegir OpenGL debido a la portabilidad y su claridad en Métodos de representación. Trabajé en Direct3D durante varios años antes de cambiar a OpenGL. funciones de OpenGL y los estados son más fáciles de aprender y Métodos de representación (como la representación multi-pass) es mucho más clara. Si te gusta código en C # (que no recomiendo para estas tareas), puede utilizar la biblioteca CsGL acceder a las funciones de OpenGL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top