fog.fog_color.g=0.0;
div>
fog.fog_color.b=1.0;
W3D_SetParameter(context,W3D_FOG_COLOR, &fog.fog_color);
W3D_SetParameter(context,W3D_WFOG_START,&fog .fog_start);
W3D_SetParameter(context,W3D_WFOG_END,&fog.fog_end);
W3D_SetParameter(context,W3D_ZFOG_START,&fog.fog_star t);
W3D_SetParameter(context,W3D_ZFOG_END,&fog.fog_end);
iv>
Problèmes:
W3D_WFOG_START ou W3D_ZFOG_START sont sans effet, le fog start est toujours considéré à 1.0
W3D_WFOG_END ou W3D_ZFOG_END sont sans effet, le fog end est toujours considéré à 0.0
Autre chose:
W3D_SetState(WS->context, W3D_FOG_COORD, W3D_DISABLE); <- NE FONCTIONNE PAS, Warp3D est hardcodé pour considèrer TOUJOURS qu'il y a une coord fog sitot que W3D_FOGGING est W3D_ENABLE.
Ainsi donc en compiled vertex array il faut impérativement que W3D_VFORMAT_FOG apparaisse dans le vertex format. Sans compiled vertex array, il faut impérativement un W3D_FogCoordPointer(). On ne peut pas se contenter d'utiliser le Z en guise de fog.
Ma vieille démo de 2006 utilisait convenablement le fog. Elle se servait du Z (W3D_FOG_COORD, W3D_DISABLE) ce qui n'est plus possible, elle modifiait le FOG_START et le FOG_END, ce qui n'est plus possible non plus.
En résumé: Aujourd'hui, le FOG va de 0 à 1 et nécessite impérativement une coordonnée dédiée. On ne peut changer que la couleur. Rien d'autre.
En clair: C'est de la merde.
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2404&forum=14