Anuncios Google

Todas las funciones desconocidas de LUADev

Todas las funciones desconocidas de Lua Dev

por Death Bucle

 

Hola a todos ^^

Vereís. Me he dado cuenta de que ha causa de que el manual de LuaDev está desactualizado, hay funciones en LuaDev recientemente implementadas que se desconocen. Por ello, haré un listado de las funciones de LuaDev que ya conozco y que no aparecen en el manual. A ver si me podeís indicar cuales faltan y así por lo menos tener una referencia para las funciones de LuaDev que no aparecen en el manual pero que aún así también podremos utilizar con el Eboot de LUADev más moderno. Te dejo también el manual de LUADev más reciente. Tienes al final del post todos los archivos para descarga directa desde el servidor privado de Scenebeta ;)

Por si acaso lo prefieres te dejo aquí las descargas desde mi cuenta de Ubuntu One (también son de descarga directa):

Eboot más moderno de LUADev

Manual más moderno de LUADev


 

Funciones desconocidas:

 

Módulo 3D:

model.load( "ruta" ) --carga un archivo .obj con su respectivo mtl (texturas y colores)
model.position( x, y, z ) --coordenadas x, y, z
model.rotation( x, y, z ) --ángulo de rotación x, y, z en radianes (math.rad para convertir de grados a radianes)
model.blit() --blitea el modelo en pantalla (no necesita ningún parametro)

Notas:

Transparencia: Para usar modelos 3D transparentes hay que crear primero el modelo 3D con partes transparentes. Luego exportarlo desde Sketchup y añadir este código: Modelo:alpha().

Cargar un modelo: Al cargar un modelo este debe estar dentro de una carpeta, de lo contrario crashea.

Las funciones position, rotation y blit necesitan que especifiquemos el modelo sobre el que queremos trabajar. Su uso es parecido al de las funciones para imágenes, a saber:

--Cargar modelo:
modelo = model.load( "carpeta/modelo.obj" )
 
--Para usarlo:
modelo:position( x, y, z )
modelo:rotation( x, y, z )
modelo:blit()

El origen está en el centro de la pantalla de la PSP. Los sentidos positivos de cada eje son: X hacia la derecha, Y hacia arriba y Z hacia atrás (hacia fuera de la pantalla de la PSP).

Las rotaciones son respecto al eje de coordenadas original del objeto (cuando lo creamos MUCHO cuidado con esto).

Módulo Files:

files.encrypt( archivo, contraseña ) --encripta un archivo
files.decrypt( archivo, contraseña ) --desencripta un archivo

Notas:

Contraseña: Si no se especifica la contraseña, el archivo se encriptará con la contraseña interna de LUADev. Un archivo encriptado con la contraseña interna de LUADev no se puede desencriptar. Un archivo encriptado con una contraseña personalizada no se puede usar directamente en LUADev (se debe desencriptar antes de usarlo).

Módulo World:

world.lightenabled( N, ENABLED )  -- enciende apaga luz. N = 1-4. ENABLED = true / false. (4 luces)
world.lightambient( N, COLOR )  -- color de la componente "ambiental" de la luz numero N.
world.lightdiffuse( N, COLOR )  -- color de la componente "difusa" de la luz numero N.
world.lightspecular( N, COLOR )  -- color de la componente "specular" de la luz numero N.
world.lightype( N, TIPO )  -- Cambiar tipo de luz numero N. Tipos: 1, direccional. 2, punto de luz. 3, foco.
world.lightcomponent( N, COMPONENTES ) -- Cambiar componentes de luz. 1, amb + dif. 2, dif + spec. 3, desconocida.
world.lightspotlight( N, EXPONENTE, CORTE)  -- Solo focos. Cambia potencia y angulo de corte del foco.
world.lightdirection( 4, X, Y, Z )  --Direccion de la luz N. (Sólo direccional o foco). (Vector UNITARIO)
world.lightposition( N, X, Y, Z )   --Posicion de la luz N.
world.ambient( COLOR ) -- Cambia el color ambiental.
world.specular( COLOR ) -- Cambia el color specular.
world.viewat( TAB1, TAB2, TAB3 ) -- Cambia la posicion de la cámara.
world.perspective( fovy, ratio, near, far ) -- 3D Modo perspectiva (por defecto).
world.ortho( left, right, bottom, top ) -- 3D modo ortogonal.
world.fog( cerca, lejos, color ) -- Niebla.
world.update() -- actualiza cambios en las luces / otros cambios en el modul

Notas:

Vector UNITARIO quiere decir que: raiz( X^2+Y^2+Z^2 ) == 1.
TAB1 = { x, y, z } (posicion de la camara)
TAB2 = { x, y, z } (punto al que miramos)
TAB3 = { x, y, z } (donde está el techo, (rotacion de la camara)). ( Normalmente { 0, 1, 0 } ) 

Cuando salga cerca / lejos quiere decir unidades. Por ejemplo en la
niebla, cerca y lejos es donde se empieza a ver niebla, y donde no se vé
un pimiento. (y el color de la niebla claro ). Con lejos = 0, niebla
off.

Para todos los comandos, SIN argumentos (excepto los que tengan
numero de luz, que en estos, sólo se pasará el argumento N ), devolverán
el valor actual. O sease: world.fog(); devolverá 3 valores.
world.lighttype(1) devolverá el tipo de luz de la luz numero 1.
world.ambient() devolverá el color de ambiente actual.

Para jugar con el 3D hay que tener las matemáticas algo claritas...
por ejemplo, normalizar un vector... (X,Y,Z). (hacerlo unitario)

( 34.21, 224.23, 12.45 ) seria... elevamos al cuadrado... (
1170.3241, 50279.0929, 155.0025 ) ... sumando ... 51604,4195 ... raiz
cuadrada... 227,16606150567474237336239880841, dividiendo cada
componente por separado por este valor... daria:

(  0.15, 0.98, 0.05 ) <- ahora ya es un vector normalizado, apunta hacia el mismo sitio, pero tiene módulo = 1.

Módulo Math:

math.vector.polar( x, y )
math.poly.testxy()
math.poly.testlist()
math.round( número_decimal ) -- Devuelve una aproximación de un número decimal, con lo que math.round(1.2) devolvería 1 y math.round(2.8) devolvería 3.
tonumber( string ) --convierte un dato del tipo string al tipo number

Módulo Zip:

zip.extract( directorio_del_zip, directorio_a_extraer, int_recursivo )

Módulo Wlan:

wlan.connected() --devuelve true o false según si estamos conectados a una red o no
wlan.getconfigs() --devuelve una tabla con las conexiones configuradas. la tabla contiene los campos name y ssid para cada red
wlan.init() --devuelve 1 si se realizó correctamente la conexión y otro valor si falló
--[[
* Se puede llamar sin argumentos, en tal caso aparece el diálogo de selección de redes del XMB, bloqueando la ejecución del programa hasta que la conexión se realice (o surja un error xD).
* Se puede llamar con un número como argumento, en tal caso se conectaría a la red especificada (1 para la 1ra conexión, 2 para la 2da y así)  sin bloquear el ciclo del programa (digamos que es el modo avanzado de conexión).
* Por último,  se puede llamar con dos argumentos (ambos números). El 1er argumento indica la red a la que se va conectar y el 2do indica una espera máxima en segundos antes de que deje de intentar conectarse (en el XMB cuando se acaba el tiempo dice "Tiempo de espera agotado", sería algo parecido). Este modo muestra el diálogo de conexión del XMB, pero se conecta automáticamente a la red especificada (bloquea la ejecución del script)
]]--
wlan.ip() --devuelve la IP que nos asignaron
wlan.mac() --devuelve nuestra direción MAC física de la PSP
wlan.scan() --devuelve una tabla con las conexiones activas.
--[[
ssid: ssid la conexión
dtim: ??
bssid: bssid de la conexión
rate: Información de la conexión
bsstype: Tipo de conexión
rssi: intensidad de la conexión
info: información de la conexión
channel: canal por el que emite
atim: ??
localtime: ??
timestamp: ??
beacon: ??
]]--
wlan.status() --según el estado de la red devuelbe un número
--[[
0 desconectado
1 escaneando
2 conectando
3 obteniendo IP
4 conectado
5 autorizando
6 intercambiando clave
]]--
wlan.statustext() --lo mismo que wlan.status() pero en vez de devolber números devuelbe los strings de arriba
wlan.strength() --de 0 a 100 el nivel de la señal

 

Módulo String

tostring( cualquier_parametro ) --convierte un dato de cualquier tipo al tipo string

Módulo Socket:

socket	socket.connect(servidor, puerto par, puerto local) -- Crea un nuevo objeto Socket con protocolo TCP/IP. Si no se especifica el puerto local, abre un puerto aleatoriamente.
socket	socket.udp(servidor, puerto par, puerto local) -- Crea un nuevo objeto Socket con protocolo UDP. Si no se especifica el puerto local, abre un puerto aleatoriamente.
nil	socket.free(socket) -- Cierra y elimina el objeto Socket.
boolean	socket.isconnected(socket) -- Comprueba que el socket esta conectado.
number	socket.localport(socket) -- Devuelve el puerto local.
number	socket.peerport(socket) -- Devuelve el puerto par.
number	socket.packetslost(socket) -- Devuelve el número de paquetes perdidos.
string	socket.recv(socket, bytes) -- Lee los datos recibidos desde el socket. El numero de bytes es opcional
number	socket.send(socket, string) -- Envía un string mediante la conexión socket. Devuelve el numero de bytes enviados

 

Módulo OS:

os.sleep( segundos )
os.luadevsplash() --muestra el splash de LUADev
os.luasplash() --muestra el splash de LUA

Más funciones:

image.chipload() --sería un load de la imagen interna del logo de chipmunks
image.gearload() --idem de arriba, rueda que usa la sphash de LUADev
image.logoload() idem arriba logo de LUADev
image.luaload() --logo de LUA
logoload:zblit( x, y, z, angX, angY, angZ ) --blit en 3D (experimental, falla bastante)

 

Recopilación de todas las funciones del Eboot de GDP: 

 

chipmunk
	body
		mass
		new
		position
	cursor
		grab
		move
		new
		release
	init
	moment
		box
		circle
		polygon
		segment
	shape
		elasticity
		friction
		getbody
		newcircle
		newpoly
		newsegment
	space
		addbody
		addshape
		addstaticshape
		damping
		free
		gravity
		idlespeedthreshold
		iterations
		new
		pointqueryfirst
		pointqueryfirst_body
		resizeactivehash
		resizestatichash
		sleeptimethreshold
		staticbody
		step
		wiredraw
debugmode
debugprint
debugset
dump
error
fx
	add
	alpha
	color
	default
	none
	rgba
	sub
gcinfo
getfenv
getfullmodulefunction
getmetatable
iif
image
	chipload
	fastblit
	fxadd
	fxsub
	fxtint
	gearload
	logoload
	luaload
	zblit
include
ipairs
lightstation
load
loadfile
loadstring
math
	bbox
	clamp
	inrect
	int
	poly
		rotate
		testlist
		testxy
	round
	vector
		cartesian
		magnitude
		polar
model
	alpha
	buffer
	lshf
	mat
	stat
module
newproxy
next
debug
	debug
	getfenv
	gethook
	getinfo
	getlocal
	getmetatable
	getregistry
	getupvalue
	setfenv
	sethook
	setlocal
	setmetatable
	setupvalue
	traceback
particles
	blit
	count
	enabled
	free
	init
	intensity
	limit
	new
	rand
	start
	stop
socket
	connect
	free
	isconnected
	localport
	packetslost
	peerport
	recv
	send
	udp
table
	foreach
	foreachi
	getn
	setn
	sort
umd
	present
video
	free
	info
	load
wlan
	connected
	getconfigs
	init
	ip
	mac
	scan
	status
	statustext
	strength
	term
world
	ambient
	envmapcolor
	envmapfx
	fog
	lightambient
	lightattenuation
	lightcomponent
	lightdiffuse
	lightdirection
	lightenabled
	lightposition
	lights
	lightspecular
	lightspotlight
	lighttype
	lookat
	ortho
	perspective
	shademodel
	specular
	update



 

Todas las actualizaciones del post:

  1. Actualizados módulos World y Math (Gracias a xerpi) [lunes, 04 de julio de 2011]
  2. Actualizado módulo Math (Gracias a barney77) [lunes, 04 de julio de 2011]
  3. Corregido módulo Math (Gracias a cam-maker) [lunes, 04 de julio de 2011]
  4. Actualizado módulo String (Gracias a barney77) [lunes, 04 de julio de 2011]
  5. Actualizado módulo Files (Gracias a Rober Galarga) [lunes, 04 de julio de 2011]
  6. Actualizado módulo Zip, Wlan y Socket (Gracias a xerpi) [lunes, 04 de julio de 2011]
  7. Corregidos módulos Math, String, Wlan y Socket (Gracias a xerpi) [martes, 05 de julio de 2011]
  8. Corregido modulo 3D (Gracias a Rober Galarga) [martes, 05 de julio de 2011]
  9. Añadido módulo OS (Gracias a NauTiluS1) [sábado, 09 de julio de 2011]
  10. Aádidas todas las funciones LuaDEV del Eboot de GDP (Gracias a xerpi) [domingo, 10 de julio 2011]
  11. Actualizadas todas la funciones LUADev del Eboot de GDP (Gracias a xerpi) [miércoles, 13 de julio de 2011]
  12. Actualizado el módulo World (Gracias a DeViaNte) [viernes, 19 de agosto de 2011]
  13. Actualizado el módulo 3D (Gracias a Mills) [sábado, 21 de enero de 2012]
  14. Añadido el apartado Más funciones (Gracias a DeViaNte) [miércoles, 25 de enero de 2012]
  15. Actualizado el módulo Wlan (Gracias a Rober Galarga) [miércoles, 21 de marzo de 2012]
  16. Actualizado el módulo Wlan (Gracias a OoNEKERAFAoO) [martes, 1 de mayo de 2012]
  17. Actualizado el módulo OS (Gracias a RedHunter) [domingo, 17 de junio de 2012]
  18. Actualizado el post entero mejorando el orden y la organización (Gracias a TheTooxicoo) [jueves, 21 de junio de 2012]
  19. Actualizado el post en la parte de Todas las funciones (Gracias a TheTooxicoo) [jueves, 19 de julio de 2012]
  20. Actualizado el módulo Wlan (Gracias a RedHunter) [lunes, 03 de septiembre de 2012]
  21. Actualizado el módulo Math (Gracias a RedHunter) [lunes, 22 de octubre de 2012]


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de NEKERAFA

Si

A ver si lo puedes actualizar

Imagen de User170294

Ya está.

Ya está actualizado. Perdonad por la tardanza pero he andado un poco ausente últimamente. He estado metido en otros asuntos.

Imagen de NEKERAFA

XD

Siento ser muy tiquismiquis, pero es devuelve, no debuelve, faltas las puede cometer uno a menudo... XD. También te sugeriria borrar la parte que te dice como conseguir una tabla, ya que no es ninguna función desconocido, es algo que sale en en manual de Lua 5.1, y como último te recomendaria editar la información de wlan.scan() y poner al lado lo que puse arriba.

Lo siento, soy demasiado perfeccionista jejeje.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Eso me gusta ;D

Imagen de NEKERAFA

XD

Por eso, siempre que programo en lua, sea cual sea, tengo en una ventana con el manual de Lua 5.1

xD

xD

Imagen de NauTiluS1

No ***** la psp aun funciona

No ***** la psp aun funciona xD


Editado: El uso de palabras inadecuadas podría resultar ofensivo para ciertos usuarios y va en contra de las Normas de la Comunidad, antes de volver a postear por favor revíselas.| Rober Galarga


Follow me twitter nautilus1_jmccu!!
Sony, ya a nadie le interesa tus UMD si alguien compra una psp es por nosotros los coders. Madura y has un FW que haga la diferencia y anime a las personas en comprar un PSP

Bueno, las funciones del

Bueno, las funciones del módulo WLAN son algo obvias, pero para aquellos no tan entendidos dejo una breve explicación:

  • BOOLEAN wlan.connected()
    Devuelve true o false, según si estamos conectados a una red o no.
  • TABLE wlan.getconfigs()
    Devuelve una tabla con las conexiones configuradas (desde el menu de red del XMB). La tabla contiene los campos name y ssid para cada red (ssid es el nombre de la red, el que muestra el router cuando escaneamos; y name es el nombre que nosotros asignamos a la red cuando la creamos).
    Creo causa conflicto, así que dejo un ejemplo por si las moscas (el ejemplo es de DeViaNTe):
    redes = wlan.getconfigs()  --Notar que no es necesario iniciar la conexión antes
     
    --Para obtener datos de la 1ra red:
     
    screen.print(5,5,"ESSID: "..redes[1].ssid..
                            "\nNombre de la red: "..redes[1].name)
     
    --Para las demás redes cambiamos el 1 por el número que corresponda.
  • NUMBER wlan.init()
    Existen 3 formas de uso (En cualquier caso devuelve 1 si la conexión se realizó correctamente, cualquier otro valor si falló):
    • Se puede llamar sin argumentos, en tal caso aparece el diálogo de selección de redes del XMB, bloqueando la ejecución del programa hasta que la conexión se realice (o surja un error xD).
    • Se puede llamar con un número como argumento, en tal caso se conectaría a la red especificada (1 para la 1ra conexión, 2 para la 2da y así)  sin bloquear el ciclo del programa (digamos que es el modo avanzado de conexión).
    • Por último,  se puede llamar con dos argumentos (ambos números). El 1er argumento indica la red a la que se va conectar y el 2do indica una espera máxima en segundos antes de que deje de intentar conectarse (en el XMB cuando se acaba el tiempo dice "Tiempo de espera agotado", sería algo parecido). Este modo muestra el diálogo de conexión del XMB, pero se conecta automáticamente a la red especificada (bloquea la ejecución del script)
  • STRING wlan.ip()
    Devuelve la IP que nos asignaron cuando nos conectamos (no me funcionó con el EBOOT de GDP, estará deshabilitada supongo).
  • STRING wlan.mac()
    Devuelve la dirección física (MAC) de nuestra tarjeta WiFi (la del psp, no la del punto de acceso).
  • TABLE wlan.scan()
    Realiza un escaneo y devuelve una tabla con las conexiones activas. Hasta ahora sólo he indentificado uno de los campos que devuelve (essid), sigo probando ^^
  • NUMBER wlan.status()
    Devuelve un número, según el estado de la red:
    0 - Desconectado
    1 - Escaneando
    2 - Conectando
    3 - Obteniendo IP
    4 - Conectado
    5 - Autorizando
    6 - Intercambiando clave
  • STRING wlan.statustext()
    Lo mismo que la anterior, pero devuelve los mensajes que escribí arriba en lugar de números.
  • NUMBER wlan.strength()
    Devuelve un número del rango 0-100, con el nivel de señal de la conexión actual (devuelve 0 si no hay conexión activa).

Si necesitan algún ejemplo, pues pídanlo xD

Imagen de AdriGV

Ad-hot

LuaDEV no tiene ningun modulo de ad-hot verdad?

Saludos

Imagen de Chimecho

Nop

No hay anuncios calientes, pero puede que sí haya en un futuro un módulo para Ad hoc :D

Imagen de AdriGV

Jajajaja

no tenia la psp a mano y no sabia como se escribia xD

Imagen de User170294

No existe tal módulo para

No existe tal módulo para LuaDev pero seguro que se podría crear. Saludos.

Imagen de Chimecho

Mmmm...

Creo que el wlan.init con dos argumentos no muestra el diálogo, pero no puedo confirmarlo.

Imagen de User170294

Ok. Comprendo, cuando lo

Ok. Comprendo, cuando lo puedas confirmar lo pondré en el post. Saludos Chime.

Imagen de User170294

Gracias por el aporte Rober,

Gracias por el aporte Rober, lo agrego ahora mismo. Saludos.

Que decir...

Pues PERFECTO, esto va aumentando :D

Gracias por tu tiempo, Rober ;D

No hay de que ;)PD. Agregada

No hay de que ;)

PD. Agregada un poco más de info sobre wlan.scan =)

EDITO: Naa... ya probé con signal, signalstrength, strength, security, encryption... y ninguna funciona. Mejor que DeViaNTe se pase y nos diga que otros campos tiene esa tabla xD

A ver...

A ver si se pasa :D

Antes de subir archivos

Antes de subir archivos debiste leer esto (SI, aunque no sean creaciones tuyas, recuerda que usar el servidor de SB es un privilegio y debemos cuidarlo).

Saludos.

Imagen de fran98

No puedo acceder a la página

No puedo acceder a la página me sale: Acceso denegado No tiene autorización para acceder a esta página.

Imagen de User170294

No son más que instrucciones

No son más que instrucciones para coders sobre como subir los archivos al servidor ;) no os preocupeis.

Imagen de m.rr

Será el foro de Coders

Será el foro de Coders

Así es, son una serie de

Así es, son una serie de lineamientos que deben seguir los coders cuando suben archivos al servidor de SB (están en foro privado, porque no tiene caso que los demás users lean eso, no pueden subir archivos igualmente xD).

Imagen de m.rr

Es que he oído hablar de ese

Es que he oído hablar de ese foro "privado" xD

Imagen de fran98

Bueno, me quedare con las

Bueno, me quedare con las dudas hasta que sea coder XD

Saludos y muchas gracias por responderme a los dos (Rober Galarga y m.rr)

Imagen de NEKERAFA

Mmm...

Yo soy coder en PS3 y te digo que no es nada. Solo son recomendaciones para subir los archivos y alguna que otra cosilla...

Imagen de m.rr

Yo igual xD

Yo igual xD

Imagen de User170294

Listo. Gracias por el aviso

Listo. Gracias por el aviso ;)

Imagen de AitorDB

By Aitor

Me estoy currando un doxygen con todas las nuevas funciones que habeis metido aquí, haber si lo termino y lo subo.

Alguien conoce...

Para que sirve algunas de estas funciones??

image
	chipload
	fastblit
	fxadd
	fxsub
	fxtint
	gearload
	logoload
	luaload
	zblit

Puede estar alguna relacionada con el efecto de distorsion (como un CoverFlow de imagenes)??


 

 

Imagen de DeViaNTe

mas functions

logochipmunk = image.chipload() --- seria un load, de la imagen interna del logo de chipmunks
logogear = image.gearload() --- idem de arriba, rueda que usa la splash de luadev
logoload = image.logoload() --- idem arriba, logo de luadev
luaload = image.luaload() --- logo lua

logoload:zblit( x , y , z , angulox, anguloy, anguloz ); blit en 3d. (experimental, fallaba bastante) [ <- se podia hacer con esto el coverflow -> ]

fxadd,fxsub y fxtint me suena que ya estaban explicados... pero si no ahi van
logoload:fxadd( x, y, [0-100] ) <- es un blit, con efecto "suma". (véase fotoshop). Total, que suma el pixel de la imagen a lo que ya haya. (efecto)
logoload:fxsub( x, y, [0-100] ) <- es un blit, con efecto "resta".
(véase anterior).
logoload:fxtint( x, y, color ) <- blit, con efecto tintado y transparencia.

fastblit olvidenla, es una copia interna de blit que iba a modificar y se quedó en iba. xD


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Oseaselese

Que con el zblit puedo blitear una imagen en Modo7?

Imagen de markef

Teóricamente

logoload:zblit( 0, 0, 0, 30, 0, 0);

Teóricamente así se conseguiría el Modo 7 xD
Pd. 30 de valor en la RotX, vas probando los 3 últimos valores y alguno de ellos hace la inclinación hacía delante, luego ya es cuestión de jugar con la profundidad con el 3 valor.


Dicen que soy programador... Eso dicen.

Imagen de User170294

No se sabe nada más

No se sabe nada más específico de lo que aquí pone. Como ha dicho Rober, lo mejor será probar y probrar para ver los resultados que ofrecen. Saludos Danieloyoshi.


Eso parece, toca probar =)

Eso parece, toca probar =)

Imagen de User170294

Gracias por el aporte

Gracias por el aporte DeViaNTe. :) Actualizo enseguida. Salu2.

Para el zblit...

La imagen es una normal o es un objeto 3D??

Gracias por explicar Dev ;-)

Está dentro del módulo image,

Está dentro del módulo image, así que.... xD

Es verdad xD

No se donde tenía la cabeza jaja

Un saludo.

Imagen de User170294

Revisa la documentación de

Revisa la documentación de LuaDEV que es donde están todas las funciones ;)

Si no aparecen ahí, pasate por mi post Todas las funciones desconocidas de LuaDEV :)

 

PD: image.fxadd(), image.fxsub() e image.fxtint() las tienes en la documentación de LuaDEV.


Pero si...

Pero si este es tu post .____________.

Imagen de User170294

jajaja perdona, no me dí

jajaja perdona, no me dí cuenta en que post publicaste la duda xD

 

Jejejeje

Jejejeje

Imagen de jorge_97

by jorge_97

jajajajajajajajjaja

jajaja

No se habria dado cuenta ;)

Salu2

Imagen de Mills

Transparencias en modelos 3D

Probando he encontrado como se usan modelos 3D transparentes, solo teneis que crear un modelo 3d transparente (o con partes transparentes) en sketchup, blender o lo que querais, exportarlo luego con sketchup para que funcione bien en psp y este codigo

 

Modelo:alpha()

Y ya está :)


Pobre PSP

Imagen de User170294

Ahora actualizo.

Ahora mismo actualizo. Saludos Mills.

Imagen de NEKERAFA

XD

Y pa cuando incluyes la recopilación que hice más abajo.

Tengo que actualizarlo y añadir más...

Imagen de jorge_97

By Jorge_97

Gracias por el aporte estaba con los demás modulos pero ni me fijé...

Salu2

Imagen de DeViaNTe

Módulo

 

Módulo World:

  • world.lightenabled( N , ENABLED )  -- enciende apaga luz. N = 1-4. ENABLED = true / false. (4 luces)
  • world.lightambient( N , COLOR )  -- color de la componente "ambiental" de la luz numero N.
  • world.lightdiffuse( N , COLOR )  -- color de la componente "difusa" de la luz numero N.
  • world.lightspecular( N , COLOR )  -- color de la componente "specular" de la luz numero N.
  • world.lightype( N , TIPO )  -- Cambiar tipo de luz numero N. Tipos: 1, direccional. 2, punto de luz. 3, foco.
  • world.lightcomponent( N, COMPONENTES ) -- Cambiar componentes de luz. 1, amb + dif. 2, dif + spec. 3, desconocida.
  • world.lightspotlight( N, EXPONENTE, CORTE)  -- Solo focos. Cambia potencia y angulo de corte del foco.
  • world.lightdirection( 4, X, Y, Z )  --Direccion de la luz N. (Sólo direccional o foco). (Vector UNITARIO)
  • world.lightposition( N, X, Y, Z )   --Posicion de la luz N.
  • world.ambient( COLOR ) -- Cambia el color ambiental.
  • world.specular( COLOR ) -- Cambia el color specular.
  • world.viewat( TAB1, TAB2, TAB3 ) -- Cambia la posicion de la cámara.
  • world.perspective( fovy, ratio, near, far ) -- 3D Modo perspectiva (por defecto).
  • world.ortho(left, right, bottom, top) -- 3D modo ortogonal.
  • world.fog(cerca, lejos, color ) -- Niebla.
  • world.update() -- actualiza cambios en las luces / otros cambios en el modulo 3D.

Vector UNITARIO quiere decir que: raiz( X^2+Y^2+Z^2 ) == 1.
TAB1 = { x, y, z } (posicion de la camara)
TAB2 = { x, y, z } (punto al que miramos)
TAB3 = { x, y, z } (donde está el techo, (rotacion de la camara)). ( Normalmente { 0, 1, 0 } ) 

Cuando salga cerca / lejos quiere decir unidades. Por ejemplo en la niebla, cerca y lejos es donde se empieza a ver niebla, y donde no se vé un pimiento. (y el color de la niebla claro ). Con lejos = 0, niebla off.

Para todos los comandos, SIN argumentos (excepto los que tengan numero de luz, que en estos, sólo se pasará el argumento N ), devolverán el valor actual. O sease: world.fog(); devolverá 3 valores. world.lighttype(1) devolverá el tipo de luz de la luz numero 1. world.ambient() devolverá el color de ambiente actual.

 

Para jugar con el 3D hay que tener las matemáticas algo claritas... por ejemplo, normalizar un vector... (X,Y,Z). (hacerlo unitario)

( 34.21, 224.23, 12.45 ) seria... elevamos al cuadrado... ( 1170.3241, 50279.0929, 155.0025 ) ... sumando ... 51604,4195 ... raiz cuadrada... 227,16606150567474237336239880841, dividiendo cada componente por separado por este valor... daria:
(  0.15, 0.98, 0.05 ) <- ahora ya es un vector normalizado, apunta hacia el mismo sitio, pero tiene módulo = 1.

 

Cuando tenga más documentación avanzada ya la iré posteando. un saludop. 

Edito: Pronto tendremos animaciones 3d... xD


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de User170294

Ok. Ya lo he actualizado.

Ok. Ya lo he actualizado.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.