- 12/06/2009 22:53
Hola a todos.recién salgo del apasionante mundo de Blender ge me meto de cabeza en el apasionante mundo de panda 3d, un gran engine, sencillo, pero efectivo, que paso a ser gratuito hace, paso a ser gratuito, fue creado por Disney, yutiliza Python, pero puede ser usado con C++.
Lo cierto es que es el engine, lo suficientemente simple como para que lo pueda entender, más completo que he encontrado hasta ahora.
En serio, se lo recomiendo a todos, principiantes o no principiantes.
El código en Python queda muy legible y se entiende perfectamento, lo malo es cuando yo me pongo a escribir, que me salen los errores por todos lados.
Os dejo una muestra de código, es el hello world del programa:
Import direct, directbase. Directstart.
From pandac. Pandamodules import *.
From direct, tasque import task.
From direct, actor import actor.
From direct, interval. Intervalglobal import *.
Import math.
#cargar el escenario.
Environ = loader, loadmodel(models/environment).
Environ, reparentto (render).
Environ, setscale (0.25,0.25,0.25).
Environ, setpos(-8,42,0).
#función que dirige la cámara.
Def spincameratask(task):
Angledegres = task, time * 6.0.
Angleradians = angledegres * (math, pi / 180.0).
Base, Camera, setpos(20*math, sin(angleradians),-20.0*math, cos(angleradians),3).
Base, Camera, sethpr(angledegres, 0, 0).
Return task, cont.
Taskmgr, add(spincameratask, spincameratask).
#cargar el ppanda y su animación.
Pandaactor = actor. Actor(models/panda-model,{walk:models/panda-walk4}).
Pandaactor, setscale (0.005,0.005,0.005).
Pandaactor, reparentto (render).
#ejecutar la animación del panda.
Pandaactor, loop(walk).
#desesperados son lo intervalos de la secuencia de movimiento del panda.
Pandaposinterval1= pandaactor, posinterval(13,point3(0,-10,0), startpos=point3(0,10,0)).
Pandaposinterval2= pandaactor, posinterval(13,point3(0,10,0), startpos=point3(0,-10,0)).
Pandahprinterval1= pandaactor, hprinterval(3,point3(180,0,0), starthpr=point3(0,0,0)).
Pandahprinterval2= pandaactor, hprinterval(3,point3(0,0,0), starthpr=point3(180,0,0)).
#crear y ejecutar la secuencia de movimiento del panda.
Pandapace = sequence (pandaposinterval1, pandahprinterval1.
Pandaposinterval2, pandahprinterval2, name = pandapace).
Pandapace, loop().
Run().
Lo que hace este programa es que un panda empieza a andar de un lado a otro sobre un escenario, mientras la cámara da vueltas mirandosiempre al punte cntral.
Esta es la web: [url]http://www.panda3dorg[/url].
Con el programa vienen incntables ejemplos (unos quince o así) que son también muy fáciles de entender.
Fanáticos del 3d: a por panda 3d. (o al menos yo.
Lo cierto es que es el engine, lo suficientemente simple como para que lo pueda entender, más completo que he encontrado hasta ahora.
En serio, se lo recomiendo a todos, principiantes o no principiantes.
El código en Python queda muy legible y se entiende perfectamento, lo malo es cuando yo me pongo a escribir, que me salen los errores por todos lados.
Os dejo una muestra de código, es el hello world del programa:
Import direct, directbase. Directstart.
From pandac. Pandamodules import *.
From direct, tasque import task.
From direct, actor import actor.
From direct, interval. Intervalglobal import *.
Import math.
#cargar el escenario.
Environ = loader, loadmodel(models/environment).
Environ, reparentto (render).
Environ, setscale (0.25,0.25,0.25).
Environ, setpos(-8,42,0).
#función que dirige la cámara.
Def spincameratask(task):
Angledegres = task, time * 6.0.
Angleradians = angledegres * (math, pi / 180.0).
Base, Camera, setpos(20*math, sin(angleradians),-20.0*math, cos(angleradians),3).
Base, Camera, sethpr(angledegres, 0, 0).
Return task, cont.
Taskmgr, add(spincameratask, spincameratask).
#cargar el ppanda y su animación.
Pandaactor = actor. Actor(models/panda-model,{walk:models/panda-walk4}).
Pandaactor, setscale (0.005,0.005,0.005).
Pandaactor, reparentto (render).
#ejecutar la animación del panda.
Pandaactor, loop(walk).
#desesperados son lo intervalos de la secuencia de movimiento del panda.
Pandaposinterval1= pandaactor, posinterval(13,point3(0,-10,0), startpos=point3(0,10,0)).
Pandaposinterval2= pandaactor, posinterval(13,point3(0,10,0), startpos=point3(0,-10,0)).
Pandahprinterval1= pandaactor, hprinterval(3,point3(180,0,0), starthpr=point3(0,0,0)).
Pandahprinterval2= pandaactor, hprinterval(3,point3(0,0,0), starthpr=point3(180,0,0)).
#crear y ejecutar la secuencia de movimiento del panda.
Pandapace = sequence (pandaposinterval1, pandahprinterval1.
Pandaposinterval2, pandahprinterval2, name = pandapace).
Pandapace, loop().
Run().
Lo que hace este programa es que un panda empieza a andar de un lado a otro sobre un escenario, mientras la cámara da vueltas mirandosiempre al punte cntral.
Esta es la web: [url]http://www.panda3dorg[/url].
Con el programa vienen incntables ejemplos (unos quince o así) que son también muy fáciles de entender.
Fanáticos del 3d: a por panda 3d. (o al menos yo.