> Nan mais il a implémenté les foncitnnalités de OpenGL 1.5, pas du 2.0 : il
> manque en gros un petit détail : un langage de shader.
Il y avait déjà Cg (Direct3D/OpenGL) à l'époque qui ressemble beaucoup à HLSL (Direct3D), mais c'est vrai que GLSL (OpenGL) est très récent. Cela dit, les langages de shader, ça n'est qu'une syntaxe haut niveau qui te permet d'éviter de faire du bas niveau. C'est de toute façon seulement une aide et c'est de plus limité par rapport à un accès direct en assembleur. Tu me diras que l'assembleur c'est compliqué et ça simplifie pas la vie du programmeur, mais pour des scripts de l'ordre de quelques dizaines de lignes, je vois pas le problème.
En tout cas, ça n'empêche pas Doom 3 d'avoir le meilleur moteur 3D existant à l'heure actuelle et ce moteur, il est écrit en OpenGL. Alors où est le problème ? On peut faire mieux avec Direct3D ? Je serais ravi de lire ta démonstration à ce sujet...
> Je suis pas bête, je compare pas les numéros de version genre "c'est moi qui
> est le plus gros numéro", je compare effectivement les fonctionnalités
> implémentées
A aucun moment tu n'as parlé de fonctionnalités implémentées. Tu n'as parlé que de numéros de version, pas des extensions pour par exemple, les pixels shaders, les vertex shaders, le shadow mapping, l'animation squelettique, etc.
> et justement, les technos DirectX sont implémentées en gros au moment ou
> OpenGL sort seulement les premières spécifs de travail de fonctionnalités
> équivalentes (faut bien qu'il trouve l'inspiration quelque part)... bref là où y'a
> encore rien de concrêt et de décidé.
C'est n'importe quoi là, l'ARB standardise les extensions en fonction de leurs propres idées et de ce que proposent les différents constructeurs (ATI, NVIDIA, 3DLabs, etc.), pas en fonction de ce que propose Microsoft. Je me demande vraiment où tu es allé pêcher ça...
> Mais alors me dire qu'il faut regarder les extensions propriétaires de chaque
> constructeur pour vraiment comparer c'est du n'importe quoi : OpenGL n'a
> pour seul intérêt que d'être multi-plateforme et "standard". Ces extensions
> ne rentrent pas du tout dans ce contexte, et DirectX a pou ça l'avantage de
> standardiser sa plateforme vis-à-vis du matos en essayant d'ingurgiter les
> nouveautés le plus vite possible avant que chacun fasse sa petite extension > personnelle :
OpenGL a pour but de fournir une base stable et standard. Mais pour exploiter au mieux les capacités de chaque matériel, il existe les extensions, qu'elles soient ARB, EXT, NVIDIA, ATI, etc. Il y a des différences entre les différents matériels, Direct3D force une spécification et charge à chaque constructeur d'essayer de suivre la norme. OpenGL dans sa spécification officielle propose le minimum, qui peut être amélioré en utilisant des extensions pour coller au plus près du matériel. Ces extensions peuvent ensuite être standardisées quand elles ont fait leurs preuves. Je vois vraiment pas où est le problème là, c'est simplement une question d'approche avec des avantages et des inconvénients dans les deux cas.
> en tout cas pour les développeurs c'est nettement plus imoprtant d'avoir une
> abstraction matérielle des principaux acteurs que d'avoir une abstraction
> d'OS,
Ah bon, tu parles au nom de tous les développeurs là ? Dans les développeurs de jeux vidéo, il y a deux catégories - qui peuvent éventuellement se recouvrir : les développeurs de moteurs et les développeurs de jeux. Il n'y a que les développeurs de moteurs qui attaquent directement OpenGL ou DirectX, les autres utilisent des bibliothèques de haut niveau. Donc, pour eux, il n'y a aucun problème d'abstraction vis à vis du matériel ou du système.
> Le travail que tu soulignes de Carmack qui a du se cogner plusieurs modes
> de rendu est la parfaite démonstration de l'incohérence de la situation :
Tu es le seul à parler d'incohérence et je ne me souviens pas d'avoir lu Carmack se plaindre de la situation.
> OpenGL qui a un objectif de standardisation a beaucoup trop de retard. Mais
> bon c'est Carmack, il aime ça et puis il a un don pour faire des miracle même
> avec des vieux pots.
Tu fais bien de préciser, OpenGL a un objectif de standardisation. Mais ça n'empêche pas d'utiliser les extensions de chaque constructeur pour profiter au mieux du matériel. Tu crois vraiment que si Doom 3 avait été écrit en Direct3D il serait plus performant ou aurait plus de fonctionnalités et qu'il tournerait aussi bien sur différents matériels ?
> J'en rajouterai une couche en disant qu'il n'y a pas que Direct3D à comparer,
> MS propose une plateforme complète (Bref, tout directX), et OpenGL tout seul
> ne suffit pas.
Ca c'est pas nouveau et je vois pas en quoi c'est un problème. C'est d'ailleurs bien pour ça que je parle seulement de Direct3D.
D'ailleurs, à mon avis, il vaut mieux avoir plusieurs bibliothèques spécialisées qu'une grosse qui veut tout faire. C'est d'ailleurs un mode de pensée très répandu en informatique et la base de la construction du système Unix et de ses dérivés.
D'ailleurs la plupart des développeurs de jeux Windows, quand ils utilisent DirectX, n'utilisent pas DirectPlay, DirectSound ou DirectShow directement mais passent par des librairies spécialisées comme Miles, OpenAL, Bink, etc. Donc je ne vois pas où est le problème.
Enfin, dernière remarque, OpenGL est supporté par des dizaines de systèmes différents avec des architectures matérielles différentes (Unix, Linux, xBSD, MacOS X, PS2, Game Cube, MS Windows, etc.), Direct3D sur un seul (MS Windows).
[^] # Re: A propos de Trransgaming
Posté par Frédéric Lopez . En réponse au journal Half-Life2 sous Linux. Évalué à 5.
> manque en gros un petit détail : un langage de shader.
Il y avait déjà Cg (Direct3D/OpenGL) à l'époque qui ressemble beaucoup à HLSL (Direct3D), mais c'est vrai que GLSL (OpenGL) est très récent. Cela dit, les langages de shader, ça n'est qu'une syntaxe haut niveau qui te permet d'éviter de faire du bas niveau. C'est de toute façon seulement une aide et c'est de plus limité par rapport à un accès direct en assembleur. Tu me diras que l'assembleur c'est compliqué et ça simplifie pas la vie du programmeur, mais pour des scripts de l'ordre de quelques dizaines de lignes, je vois pas le problème.
En tout cas, ça n'empêche pas Doom 3 d'avoir le meilleur moteur 3D existant à l'heure actuelle et ce moteur, il est écrit en OpenGL. Alors où est le problème ? On peut faire mieux avec Direct3D ? Je serais ravi de lire ta démonstration à ce sujet...
> Je suis pas bête, je compare pas les numéros de version genre "c'est moi qui
> est le plus gros numéro", je compare effectivement les fonctionnalités
> implémentées
A aucun moment tu n'as parlé de fonctionnalités implémentées. Tu n'as parlé que de numéros de version, pas des extensions pour par exemple, les pixels shaders, les vertex shaders, le shadow mapping, l'animation squelettique, etc.
> et justement, les technos DirectX sont implémentées en gros au moment ou
> OpenGL sort seulement les premières spécifs de travail de fonctionnalités
> équivalentes (faut bien qu'il trouve l'inspiration quelque part)... bref là où y'a
> encore rien de concrêt et de décidé.
C'est n'importe quoi là, l'ARB standardise les extensions en fonction de leurs propres idées et de ce que proposent les différents constructeurs (ATI, NVIDIA, 3DLabs, etc.), pas en fonction de ce que propose Microsoft. Je me demande vraiment où tu es allé pêcher ça...
> Mais alors me dire qu'il faut regarder les extensions propriétaires de chaque
> constructeur pour vraiment comparer c'est du n'importe quoi : OpenGL n'a
> pour seul intérêt que d'être multi-plateforme et "standard". Ces extensions
> ne rentrent pas du tout dans ce contexte, et DirectX a pou ça l'avantage de
> standardiser sa plateforme vis-à-vis du matos en essayant d'ingurgiter les
> nouveautés le plus vite possible avant que chacun fasse sa petite extension > personnelle :
OpenGL a pour but de fournir une base stable et standard. Mais pour exploiter au mieux les capacités de chaque matériel, il existe les extensions, qu'elles soient ARB, EXT, NVIDIA, ATI, etc. Il y a des différences entre les différents matériels, Direct3D force une spécification et charge à chaque constructeur d'essayer de suivre la norme. OpenGL dans sa spécification officielle propose le minimum, qui peut être amélioré en utilisant des extensions pour coller au plus près du matériel. Ces extensions peuvent ensuite être standardisées quand elles ont fait leurs preuves. Je vois vraiment pas où est le problème là, c'est simplement une question d'approche avec des avantages et des inconvénients dans les deux cas.
> en tout cas pour les développeurs c'est nettement plus imoprtant d'avoir une
> abstraction matérielle des principaux acteurs que d'avoir une abstraction
> d'OS,
Ah bon, tu parles au nom de tous les développeurs là ? Dans les développeurs de jeux vidéo, il y a deux catégories - qui peuvent éventuellement se recouvrir : les développeurs de moteurs et les développeurs de jeux. Il n'y a que les développeurs de moteurs qui attaquent directement OpenGL ou DirectX, les autres utilisent des bibliothèques de haut niveau. Donc, pour eux, il n'y a aucun problème d'abstraction vis à vis du matériel ou du système.
> Le travail que tu soulignes de Carmack qui a du se cogner plusieurs modes
> de rendu est la parfaite démonstration de l'incohérence de la situation :
Tu es le seul à parler d'incohérence et je ne me souviens pas d'avoir lu Carmack se plaindre de la situation.
> OpenGL qui a un objectif de standardisation a beaucoup trop de retard. Mais
> bon c'est Carmack, il aime ça et puis il a un don pour faire des miracle même
> avec des vieux pots.
Tu fais bien de préciser, OpenGL a un objectif de standardisation. Mais ça n'empêche pas d'utiliser les extensions de chaque constructeur pour profiter au mieux du matériel. Tu crois vraiment que si Doom 3 avait été écrit en Direct3D il serait plus performant ou aurait plus de fonctionnalités et qu'il tournerait aussi bien sur différents matériels ?
> J'en rajouterai une couche en disant qu'il n'y a pas que Direct3D à comparer,
> MS propose une plateforme complète (Bref, tout directX), et OpenGL tout seul
> ne suffit pas.
Ca c'est pas nouveau et je vois pas en quoi c'est un problème. C'est d'ailleurs bien pour ça que je parle seulement de Direct3D.
D'ailleurs, à mon avis, il vaut mieux avoir plusieurs bibliothèques spécialisées qu'une grosse qui veut tout faire. C'est d'ailleurs un mode de pensée très répandu en informatique et la base de la construction du système Unix et de ses dérivés.
D'ailleurs la plupart des développeurs de jeux Windows, quand ils utilisent DirectX, n'utilisent pas DirectPlay, DirectSound ou DirectShow directement mais passent par des librairies spécialisées comme Miles, OpenAL, Bink, etc. Donc je ne vois pas où est le problème.
Enfin, dernière remarque, OpenGL est supporté par des dizaines de systèmes différents avec des architectures matérielles différentes (Unix, Linux, xBSD, MacOS X, PS2, Game Cube, MS Windows, etc.), Direct3D sur un seul (MS Windows).