13 de junio de 2011

Blender sky dome. Droid en Andrómeda

Continuando con proyecto Droid para ir probando poco a poco las posibilidades de Blender.
Una técnica para hacer un escenario o mejor dicho un paisaje realista 3D con Blender es hacer una cúpula y aplicarle como material una foto con nubes o en este caso un paisaje estelar.

Aquí hay un videotutorial que explica muy claro como hacerlo: Making a SkyDome:



Aplicando la técnica que describe he cambiado el escenario y he substituido la cúpula por un plano gigante con la imagen de la galaxia de Andrómeda (M31) y su pequena compañera M32 como fondo. El planeta cercano a M31 donde esta Droid lo he hecho con una porción de una esfera texturizada con cemento ligeramente virado al rojo.


De iluminación he puesto un Blender Sun y en el render un 0,10 de Ambient Oclusión.

Y este es el resultado:



9 de junio de 2011

Creando un video de imagenes con mencoder

Al utilizar las aplicaciones de renderizado distribuido con Blender
Obtenemos una colección de las imágenes que forman la animación.

Para crear el video con todas estas imágenes podemos usar la aplicación Linux:


Que es un completísimo programa en command line para visionar y codificar video.

También hay frontends que facilitan el manejo del programa: http://www.mplayerhq.hu

Teniendo las imágenes en un direcctorio ejecutamos el comando:

$ mencoder "mf://*.png" -mf fps=25 -o salida.avi -ovc lavc -lavcopts vcodec=mpeg4

Las imágenes estan en .png, los frames por segundo son 25 y el fichero de video salida.avi

Render distribuido con Blender

Una cosa que no ha cambiado desde mis primeros pasos con el 3D hasta hoy es el desesperante tiempo de renderizado. En Blender tenemos la alternativa de hacer un cluster o una red distribuida de ordenadores que renderizen en paralelo.

He encontrado dos aplicaciones:


Ambas programadas en java y crean una red distribuida de ordenadores que renderizan en paralelo un fichero de Blender.

Finalmente yo recomendaría LokiRender ya que la puesta en marcha es extremadamente sencilla y ademas se puede ejecutar desde la línea de comando lo que es muy útil si se accede a máquinas remotas por ssh.

Es necesario tener instalado Blender en las máquinas clientes.

Update: despues de publicar esta entrada, lokirender me ha dado problemas, apareciendo errores de renderización con Blender 2.5.

Y también he descubierto que el propio Blender tiene capacidad de renderizar de modo distribuido. Lo he probado y funciona de maravilla, sin necesidad de otras utilidades.

http://wiki.blender.org/index.php/Doc:2.5/Manual/Render/Engines/Netrender

Antes tendras que activar el add-on de Blender Network Renderer y seguir las intrucciones del tutorial.

Other Links:



2 de junio de 2011

Debian 6.0 y resolución de pantalla 1366x768

He enchufado una tele LG-22LE3320 a un ordenador con Debian 6.0 Squeeze y no se termina de ver bien.
Tengo problemas con la resolución 1366x768.
Aqui está la explicación y como arreglarlo.

Para añadir nuevas resoluciones en debian 6.0 squeeze:

Para crear una nueva resolución de pantalla:
root@squeeze:/home/pp# gtf 1366 768 60

# 1368x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 85.86 MHz
Modeline "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync

xrandr --newmode 1368x768_60.00 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync

xrandr --addmode VGA-0 1368x768_60.00

root@squeeze:/home/pp# xrandr
Screen 0: minimum 320 x 200, current 1280 x 720, maximum 4096 x 4096
VGA-0 connected 1280x720+0+0 (normal left inverted right x axis y axis) 1150mm x 650mm
1360x768 60.0 +
1280x720 60.0* 60.0
1024x768 60.0
800x600 60.3
640x480 60.0 59.9
720x400 70.1
1368x768_60.00 60.0
DVI-0 disconnected (normal left inverted right x axis y axis)
S-video disconnected (normal left inverted right x axis y axis)

Ahora aparecerá la nueva resolución en el menú configuración de monitores y se puede probar a ver si funciona.

Para borrar la resolución:
xrandr --rmmode 1368x768_60.00

Update: después de mucho probar diferentes resoluciones parece que con la que mejor se ve es 1024x768 a 60Hz