Entrar
¿Usuario nuevo? Regístrate
war_3d · War 3D
? ¿Ya estás suscrito? Entrar en Yahoo!

Consejos de Yahoo! Grupos

¿Sabías que...?
Puedes determinar el orden de los mensajes. Pulsa el enlace en la columna correspondiente a la fecha. Tus preferencias serán guardadas y no tendrás que introducirlas de nuevo.

Mensajes

  Mensajes Ayuda
Avanzado
Re: [war 3d] Pequeña mejora en seno coseno y mas comentarios   Lista de mensajes  
Responder | Reenviar Mensaje #777 de 894 |
Re: [war_3d] Re: [war_3d] Pequeña mejora en seno coseno y mas comentarios



Hay dos tipos de maquinas:

- limitadas por CPU
- limitadas por GPU

las primeras tienen una tarjeta que puede dibujar lo que le eches, al ser
la GPU un procesador separado con su memoria separada acaba antes y se
pega casi todo el tiempo aburrida leyendo revistas porno

las segundas tienen una tarjeta mala, asi que la pobre se dedica a
dibujar poligonos intentando llegar a tiempo para dibujar un frame.

las maquinas viejas, estilo mas viejas que p200, estan limitadas por CPU
los ordenadores normales suelen estar limitados por GPU

la optimizacion de sincos y todas las que se hagan de este estilo VALEN
para el caso de aparatos limitados por CPU, cuando el cuello de botella
esta en la cpu, esto sera normalmente ordenadores antiguos, especialmente
aquellos que el opengl o gran parte del opengl lo tienen que emular por
software

y por ahi, opino...


Miguel A. Torres wrote:

> Caray, que cachetón te oiste diciendo que C++ es un lenguaje de verdad,
> y que nosotros, los pendejos, programamos en C/ensamblador.
>
> ¿Cuándo llegarán esos pregonando que, si hay Visual Basic, los demás
> lenguajes ya no tienen sentido?
>
> Saludos.
>
> --- qualopec@... escribió:
>
>>
>>
>>Lo de usar asm en los senos y cosenos es mas viejo que el cagar y la
>>verdad, no creo q vaya a umentar el rendimiento del war como para
>>andar perdiendo el tiempo, yo antes quitaría todos los glVertex3f y
>>pondría unos vertex array como mínimo antes de hacer nada en el
>>apartado de optimizaciones.
>>
>>Con respecto a lo del puntero a función, no olvides que usa c++, que
>>es un lenguaje de verdad y por lo tanto puedes usar abstracción sin
>>ningún tipo de problemas evitando tener que guarrear el código con
>>punteros a funciones... Además en el caso de hacer un fade en los
>>cambios de pantalla ya no podrías usar el mecanismo de cambiar el
>>callback de GLUT.
>>
>>Lo del sonido que dices tiene buena pinta.
>>
>>un saludo, ethernet
>>
>>
>>
>>>De:: "jgpd16" <jgpd16@...>
>>>Para: war_3d@yahoogroups.com
>>>Asunto:: [war_3d] Pequeña mejora en seno coseno y mas comentarios
>>>BCC: 07/09/2004
>>
>>>Como supongo que muchos sabreis la fpu tiene la posibilidad de
>>>realizar el seno y el coseno de un angulo dado al mismo tiempo,
>>>ahorrando muchisimos ciclos de reloj(casi la mitad del tiempo).
>>>Para las funciones que usan sin y cos,matrices,etc he desarrollado
>>>(todavia sigo)una libreria matematica (esta casi toda en asm, y es
>>>rapidisima, el problema es que es VC inline) y bueno se me ha
>>>ocurrido poner la funcion sincos en asm inline de VC,
>>>
>>>void sincos(float val,float *sine,float *cosine)
>>>{
>>> _asm
>>> {
>>> mov eax,cosine
>>> mov edx,sine
>>> fld val
>>> fwait
>>> fsincos
>>> fwait
>>> fstp [eax]
>>> fstp [edx]
>>> }
>>>}
>>>
>>>Bueno eso para VC, para Gas que es que usa gcc seria algo distinto
>>>por motivos de la sintaxis AT&L que usa(que fea coño), asi la
>>>funcion quedaria algo parecido al
>>>
>>>void sincos(float val,float *sine,float *cosine)
>>>{
>>>#ifndef WIN32
>>>
>>> _asm
>>> {
>>> mov eax,cosine
>>> mov edx,sine
>>> fld val
>>> fwait
>>> fsincos
>>> fwait
>>> fstp [eax]
>>> fstp [edx]
>>> }
>>>#elseif defined /*pondriamos otras macros que definen los
>>>compiladores */
>>>/*Codigo en asm en linea*/
>>>#endif
>>>}
>>>
>>>
>>>Tendriamos una funcion que se llamaria de la siguiente forma
>>>
>>>sincos(angulo,&seno,&coseno);
>>>
>>>y nos devolveria el seno y el coseno del angulo y ademas es muy
>>>rapida.
>>>
>>>Estaria bien tratar de optimizar alguna que otra funcion
>>
>>matematica,
>>
>>>tambien (no se si lo hareis así ahora mismo) para pintar la
>>
>>pantalla
>>
>>>usar punteros a funciones, así se ahorrarian comprobaciones if
>>>inutiles que son tan importantes a la hora de pintar
>>>asi el GlutDisplayloquesea(no manejo glut, wgl y glx :P mira que
>>
>>soy
>>
>>>raro) tendriamos por ejemplo un puntero a funcion generico
>>>void (*PintaPantalla)(void);
>>>Y según el estado del juego hariamos algo parecido a
>>>PintaPantalla = PintaMenu;
>>>PintaPantalla = PintaSinglePlayer;
>>>etc.
>>>y la llamada en glut seria algo como
>>>glutDisplayWindow(PintaPantalla);(Repito no se glut, no me gusta).
>>>
>>>Digo esto pq no me deja descargar el codigo anonimamente y no le he
>>
>>>pasao a Zeru mi nombre de Sourceforge y no he podio ver el codigo
>>
>>de
>>
>>>forma comoda.
>>>
>>>Otra cuestion, para el sonido usais ogg y openal, pero ¿cargais el
>>>fichero de audio entero en memoria y lo leeis?, ¿lo leeis desde el
>>>disco duro poco a poco o cargais el fichero ogg y despues lo que
>>>haceis es ir encolando bufferes de sonido para su reproduccion?,
>>>(como consecuencia se usa muy poca memoria y es muy rapido)(el
>>>fichero ogg, no mas de 3MG y dos bufferes de como mucho 8KB cada
>>>uno). Es que tengo hecho un reproductor de Ogg con OpenAl que usa
>>>eso, si os interesa y no teneis algo por el estilo podria pasarlo,
>>>de hecho tengo intencion en usarlo en un juego que estoy haciendo
>>>por mi cuenta(ya tengo casi terminado el editor :), por ciero la
>>>funcion sincos esta mas que provada en el editor para las
>>>rotaciones).
>>>
>>>Cuando tenga el codigo le hechare un ojillo por encima a ver que
>>>puedo aportar, que llevo un tiempo en el grupo y no he hecho na,
>>>bueno si compilarlo en suse pero soy tan perro que no escribi ni
>>>como lo hice.
>>>
>>>Por cierto mi cuenta en sourceforge en Raistmaj asi que ya sabes
>>>Zeru :). Si quereis comentarme algo personalmente mi correo:
>>>gmail.com 1
>>>@ 2
>>>Raistmaj 3
>>>
>>>El orden (es logico) es 321.(esto lo hago por si acaso hay spam).
>>>
>>>
>>>
>>>
>>>
>>>_____________________________________
>>>WAR3D -> <A HREF="http://war3d.sourceforge.net/"
>>
>>TARGET="_blank">http://war3d.sourceforge.net/</A>
>>
>>>Si quieres cancelar tu suscripcion, envia un mensaje a
>>
>>war_3d-unsubscribe@yahoogroups.com
>>
>>>_____________________________________
>>>Enlaces a Yahoo! Grupos
>>>
>>>
>>> war_3d-unsubscribe@yahoogroups.com
>>>
>>> <A HREF="http://es.docs.yahoo.com/info/utos.html"
>>
>>TARGET="_blank">http://es.docs.yahoo.com/info/utos.html</A>
>>
>>
>
>
> _________________________________________________________




Mar, 7 de Sep, 2004 1:03 pm

421621@...
Enviar mensaje Enviar mensaje

Reenviar Mensaje #777 de 894 |
Desplegar mensajes Autor Ordenar por fecha

Lo de usar asm en los senos y cosenos es mas viejo que el cagar y la verdad, no creo q vaya a umentar el rendimiento del war como para andar perdiendo el...
qualopec@...
Enviar mensaje
7 de Sep, 2004
6:35 am

Caray, que cachetón te oiste diciendo que C++ es un lenguaje de verdad, y que nosotros, los pendejos, programamos en C/ensamblador. ¿Cuándo llegarán esos...
Miguel A. Torres
mikemex_ask@...
Enviar mensaje
7 de Sep, 2004
6:48 am

Bueno ya se que tiene mas años que el cagar, pero 1º mejoraria a lo mejor un 1 por ciento, tambien tengo tecnicas para acelerar los casting de int a float,...
JOSE GERARDO PALMA DU...
jgpd16
Sin conexión Enviar mensaje
7 de Sep, 2004
7:04 am

Hay dos tipos de maquinas: - limitadas por CPU - limitadas por GPU las primeras tienen una tarjeta que puede dibujar lo que le eches, al ser la GPU un...
tei
421621@...
Enviar mensaje
7 de Sep, 2004
1:03 pm
Avanzado

Copyright © 2009 Yahoo! Todos los derechos reservados.
Política de Privacidad Actualizada - Condiciones del servicio - Directrices - Ayuda