OpenGL 3.0... ese engendro... -_- que tiene en pie de guerra a toda la comunidad de desarrolladores. Escuche alguna vez que la indiferencia era lo malo, que hablaran de ti mal, no era tan malo. Por lo que yo entiendo, los detalles que mosquean a la gente en general:
* Que el core de la librería no integre maneras para soportar las nuevas features de las tarjetas... es una buena cagada, se supone que toda librería que se precie debe soportar todas las últimas features... pese a ello si aparecen extensiones estándar, mejor, sino se implementarán en extensiones los fabricantes... no estoy muy puesto en el tema, que conste. Quizás todas estas nuevas features tengan que madurar hasta que CUDA, Larrabee... se conviertan en algo más estandarizado y para entonces entren con más fuerza.
* Lo que parece que más indigna a la gente es que no se halla incluido un modelo orientado a objetos, al parecer pensando en la gente que desarrolla para CAD. Hasta parece que hay alguno que quiere que quiten todo el sistema tradicional de OpenGL basado en funciones e implanten OO (orientación a objetos).
* En general la gente comenta que casi todo se limita a coger algunas extensiones y moverlas al núcleo. A mi también me lo parece leyendo la spec.
Y lo que yo opino o me cuestiono:
* No tiene tanto sentido una comparación OpenGL y DirectX, ambas tienen arquitecturas demasiado distintas:
* DirectX se basa en sucesivas versiones de objetos. Cuando sacan un nuevo DirectX, las versiones antiguas "siguen ahí". En DirectX tenemos al alcance features antiguas con tal de usar objetos antiguos -eso creo, porque hace mucho tiempo que no hago nada para DirectX y puede ser que empezaran la "caza de brujas" de versiones antiguas pero me suena que por lo menos se emulaban...-. Por tanto DirectX está más encaminada a "romper" cada vez que sale nueva versión.
* Por otro lado OpenGL tiene una estructura basado en core+extensiones. La compatibilidad está en que dicho core es siempre el mismo o que versiones nuevas incluyen a las antiguas... En ese sentido lo que no sé es que ocurrirá con OpenGL 2.x cuando llegue OpenGL 3.x: ¿será soportado por otra .DLL o .SO? O será borrado del mapa?? Eso sería una cagada: hay aplicaciones antiguas que dejarán de funcionar?... por lo menos deberían emular los sistemas antiguos... que será lo que hagan en el peor de los casos no??
* A mi personalmente me parece mucho más potente la estructura core+extensiones... hubo un tiempo en que, por lo menos me da esa sensación, OpenGL estaba mucho más a la última con este tipo de arquitectura, puesto que los fabricantes sacaban extensiones en sus implementaciones de OpenGL; esa velocidad no se puede / podía alcanzar con un sistema similar a DirectX... que está más orientado a revisiones. En OpenGL luego salían las extensiones ARB, que estandarizaban aquellas extensiones de features comunes, pero para entonces ya podías haber programado versiones modificadas de tu renderer para las distintas extensiones.
* Lo de dejar sólo OpenGL orientado a objetos (OO)... no creo que... ó sólo puedo decir que el OpenGL de toda la vida ha sido así y en parte eso es lo que le confiere su sencillez: se pueden publicar secuencias de ordenes, a modo recetas, no sé si esto sería así con OO, supongo que también, si se cumplieran algunos requisitos. Estaría bien que hicieran "otra" librería gemela o un subset orientado a objetos y __directamente contra los drivers__ por eso de la velocidad, pero quitarle a OpenGL su estructura de funciones "gl" y estados, no sé ¿sería OpenGL? A mi me parece un poco salvajada esa posibilidad. ¿No os parece tanta fijación con el tema del OO un poco "snob"? Que conste que el OO está muy bien, pero desarrollar en OO tiene sus cosas buenas y malas como todo. A mi personalmente me resulta más rápido no usar OO en determinadas zonas, aunque tengo que reconocer que OO con OpenGL podría estar bien, pero también es cierto que creo que es más portable usar C (no C++).
* Lo que no entiendo es porque se ha dejado de segundo plano el modo de hacer de ir estandarizando las extensiones de fabricantes más o menos comunes y se ha emprendido esta cruzada en el core. Es cierto que había cosas que tenían telas de araña... de lo poco que se usaban... modos de 256 colores y tal, pero soy de la opinión que el core no debería de tocarse teniendo esta arquitectura core+extensiones, como mucho marcar deprecated algunas cosas y listo. A mi donde halla unas buenas extensiones ARB que se quite el resto... :P Incluso se podría sacar una extensión ARB para proveer OO... pero claro, no queda tan "buen marketing" como decir... "el nuevo OpenGL 3". El marketing siempre ha estado detrás de que ahora se pueda decir eso de las cosas ya no duran lo que antes xDDDD.
* Por último lo del deprecated la han liado parda, pero vamos, que tampoco quita el sueño. A modo curiosidad todavía no me ha quedado claro si se cargan el clásico "glBegin();... glVertex();... glEnd();" de OpenGL... en la sección de deprecated dan a entender que sí, pero luego en la sección 2.6 hablan del tema como si fuera a quedarse. A mi personalmente me parecía un buen método para probar cosas, pero luego a la hora de la verdad siempre es buena cosa empacar los vértices.
A mi personalmente no me había creado ninguna espectativa el que surgiera OpenGL 3 o DirectX 11... para mi son medios para lograr fines, en unos casos con más dolor de cabeza y en otros con menos.
Sólo espero que cuando aparezcan las primeras implementaciones aparezca, cuanto más material, mejor :)
jueves, 21 de agosto de 2008
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario