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>
>>
>>
>
>
> _________________________________________________________