Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1884 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  [3D] Cherche differents algos de flitrage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[3D] Cherche differents algos de flitrage

n°248417
highseb
Posté le 19-11-2002 à 14:34:46  profilanswer
 

Salut a tous, voila je cherche des sites, des tutoriaux, ou n'importe quelle doc en general sur les differents types de filtrage de texture ( bilineaire, trilineaire, anisotropique), ainsi que de la doc sur les anti-aliasing.
 
SVP pas de "va voire sur google" parce que je n'y trouve que des vagues explications a la prof de physique de 4e  :pfff: .

mood
Publicité
Posté le 19-11-2002 à 14:34:46  profilanswer
 

n°248442
bjone
Insert booze to continue
Posté le 19-11-2002 à 14:55:30  profilanswer
 

jusqu'au trilinéaire, tu trouveras de la bonne doc.
par contre effectivement pour l'anisotropic et l'anti-aliasing, je n'est pas vu de doc limpide.
 
quel est ton niveau en prog 3D (je veux dire indépendant d'une carte 3D), t'es-tu déjà fait une routine de triangle ?
 
sinon pour les filtrages c'est plus simple à expliquer par dessin, que par équation....

n°248450
highseb
Posté le 19-11-2002 à 15:04:41  profilanswer
 

G un ptit peu fait le bourrin un programmant un ptit moteur affichant des triangle plein en nivo de gris le tout en asm 68K pour TI92+, mais la je veux surtout des algo pour mon TIPE.
 
Quand tu dit "tu trouveras de la bonne doc" t'aurais pas des liens stp ?

n°248555
bjone
Insert booze to continue
Posté le 19-11-2002 à 16:16:50  profilanswer
 

ton niveau de gris tu le faisait en fonction d'un coefficient que tu interpolais le long du triangle, le triangle était en dégradé, ou il était de couleur unie ?

n°248569
bjone
Insert booze to continue
Posté le 19-11-2002 à 16:21:27  profilanswer
 

http://www.math.mcgill.ca/~loisel/
 
va voir Zed3d, y'a un .DOC dans le zip qui contient pas mal d'infos.

n°248885
highseb
Posté le 19-11-2002 à 18:43:38  profilanswer
 

Les face etaient en gris uniforme (4 nivo gris Roxxxx). Le nivaux de gris etait proportionnel au produit scalaire de la normale et de l'unique source (directionnelle).
Je te remerci pour le lien je V voire ca tout de suite .

n°248992
bjone
Insert booze to continue
Posté le 19-11-2002 à 20:12:20  profilanswer
 

oki du lambert de chez lambert :D

n°249004
highseb
Posté le 19-11-2002 à 20:32:58  profilanswer
 

mwai enfin fo bien comprendre qu'avec un 68000 à 10MHz et un ecran 240x128 capable d'afficher 4 nivo de gris, c un peu limité pour faire de la vraie 3D. Le but CT surtout de comprendre le fonctionnement d'un moteur 3D temps réel.

n°249011
bjone
Insert booze to continue
Posté le 19-11-2002 à 20:40:50  profilanswer
 

ha mé tout à fait...   :jap:  

n°249029
LeGreg
Posté le 19-11-2002 à 21:14:29  profilanswer
 

ben t'appelles quoi pas detaille ?
 
filtrage lineaire = tu prends deux samples (couleur ou quoi que ce soit pourvu que ce soit numerique), tu fais une interpolation lineaire (c = ta + (1-t)b) entre les deux. Voila.
 
filtrage bilineaire = tu prends quatre samples, tu fais deux interpolations lineaires suivant un jeu de deux coordonnees u et v (ramenees a l'ecran et interpolees en tenant compte de la perspective): e = v(ua+(1-u)b) + (1-v)(uc+(1-u)d)
 
filtrage trilineaire =  tu prends huit samples, tu fais trois interpolations lineaires suivant un jeu de trois coordonnees u, v et w (pareil attention a la perspective), je te detaille pas la formule (cf linaire et bilinaire).
 
filtrage anisotropique: lorsque tu fais le filtrage trilineaire en general tu interpoles entre deux niveaux de mipmaps differents (tu pourrais aussi faire du filtrage quadrilineaire entre deux niveaux de mipmaps d'une texture 3D). La facon dont tu choisis ces niveaux de mipmaps est un compromis entre le flou et la precision (le fameux mipmap bias que tu peux selectionner dans tes drivers). Ce compromis est optimale en cas d'aspect 1x1 pour ta texture (1 texel sur 1 texel dans les deux directions est egal au meme nombre de pixels dans les deux directions sur ton ecran) tout simplement parce que en calculant tes mipmaps tu ne fais pas varier l'aspect de ta texture.  
Par contre des que tu as un aspect different (observation de biais ou textures coordinates non isotropiques), tu es oblige de choisir entre le flou et les interferences (soit la peste et le cholera de l'affichage graphique).
Le probleme c'est que le mipmap classique est adapte a un mipmaping isotropique (qui ne change pas l'aspect de ta texture). il faut donc deux solutions: un mipmap adaptatif (decrit dans un papier sur la page de SGI) qui ferait varier l'aspect en plus de la taille des textures. Seul probleme, le hardware ne supporte pas ce genre de mipmapping et donc il fallait selectionner l'aspect lors de l'envoi de la geometrie a la carte. ce qui le limitait a un petit nombre de surfaces dans la scene (le sol dans un simulateur de vol).
Une autre solution est de prendre beaucoup plus de samples que lors d'un filtrage trilineaire classique (jusqu'a un rapport 1 sur 8), et de calculer la valeur du texel envoye a l'ecran en fonction du rapport texels/pixels. En fait ca correspond a peu pres a calculer les mipmaps adaptatifs sur la carte et par pixel et ca ne peut se faire que de facon hardware. (la qualite de l'affichage depend de la formule utilisee pour calculer la valeur du texel en fonction des 8 samples utilises et de l'emplacement des 8 samples sur la texture). Au maximum on passe donc de 8 samples par pixels a 64 samples par pixels.  
 
Pour l'antialising, il y a aussi plusieurs methodes disponibles.
La plus simples mais aussi couteuse, est le supersampling.
Qui consiste a rendre dans une destination 2fois, 3fois ou 4 fois plus grande que le buffer d'affichage reel. Puis d'appliquer une formule de filtrage (tu veux que je rentre dans les details ?) pour obtenir une image "subsamplee" soit echantillonee a une resolution moindre.
L'inconveniant de cette methode c'est qu'elle applique du supersampling meme aux endroits ou ce n'est pas forcement necessaire et qui couvrent une bonne partie de l'ecran: pour supprimer l'aliasing et le flou sur la texture on applique des traitements qui font lire jusqu'a 64 samples de texture pour un pixel, et si derriere on fait du supersampling x4, ben ca fait au final 256 lectures de texture pour un pixel final et un resultat qui ne sera pas meilleur!
Les seuls endroits ou l'aliasing pose probleme c'est au bord des polygones ou pour les polygones petits par rapport a l'ecran. Pour les polygones petits a l'ecran le supersampling apporte un mieux mais ne fait que repousser le probleme. Pour les bords des polygones le supersampling apporte un mieux mais a quel cout!
C'est pour ca que certains hardware implementent le edge antialiasing qui consiste a rendre flou les bords des polygones pour limiter l'effet d'escalier.
Le Parhelia lui propose un adaptative supersampling, qui n'effectue le supersampling que sur les bords des polygones.
 
Enfin bref c'est un vaste domaine le graphisme,
si tu veux en apprendre un peu plus sur les algorithmes qui pour certains existent depuis des annees ou des decennies, tu peux consulter les bouquins "graphic gems", il y en a toute une serie.
 
LeGreg

mood
Publicité
Posté le 19-11-2002 à 21:14:29  profilanswer
 

n°249048
highseb
Posté le 19-11-2002 à 21:37:09  profilanswer
 

:jap: Je te remerci LeGreg pour toutes ces explications qui me sont d'un grand secour, bien que j'ai legerement decroché pour le trilinéaire (ou trouves tu une 3e coordonnée sur la texture ?)
Sinon pourrais-tu me donner plus de renseignement sur ce livre dont tu me parle (reference exactes)?
Et encore merci de me consacrer de ton précieux temps.  :jap:

n°249183
bjone
Insert booze to continue
Posté le 20-11-2002 à 00:36:00  profilanswer
 

pour le trilinéaire, le long de ton triangle, tu as donc déjà à la base les coordonnées u,v de ta texture.
 
donc en gros:
 
en fait par pixel, tu calcules un coefficient on va dire 'm' qui évolues en fonction de la profondeur interpolée (y'a des logs dans le bordel). m étant flottant, la valeur arrondie par défaut te donne le numéro de mipmap à utiliser comme mipmap de base, puis la partie fractionnaire te "donne" la proportion de mélange vers le mipmap de rang suivant et donc plus flou.
 
la troisième coordoonée qui te donne le(s) "mipmap(s)" à utiliser est donc liée à la profondeur.
 
----
 
d'ailleurs en fait, pour la correction de perspective, on interpole toutes les grandeurs/z, puis pour obtenir la grandeur correspondante pour chaque pixel, on multiplie la grandeur/z par z (qui est lui-même interpolé sous une forme 1/z)...


Message édité par bjone le 20-11-2002 à 00:39:09
n°249978
highseb
Posté le 20-11-2002 à 19:41:13  profilanswer
 

Merci Bjone, je vais lire la doc mais pour l'instant j'avais pas trop le temps (elle est tout de meme assez consequente tout comme ma charge de travail et malheureusement le temps n'est pas extensible (ie : domage ca pourrait etre pratique))
 
Edit : d'aillieur pour pouvoir la lire a tout moment si je suis je suis au lycée je l'ai mis sur mon server apache  :D


Message édité par highseb le 20-11-2002 à 19:51:01
n°250762
bjone
Insert booze to continue
Posté le 21-11-2002 à 16:14:26  profilanswer
 

d'ailleurs même sans trilinéaire, ce coefficient est évalué (par pixel), dans le cas du bilinéaire avec mipmapping.... (et tu peux même avoir du point sampling avec mipmapping)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  [3D] Cherche differents algos de flitrage

 

Sujets relatifs
Cherche Theme phpBB facon XP..[Prolog] je cherche un prolog gratuit à télécharger
cherche applet java ...Cherche qqn qui peut m'aider pour les scripts PHP
Cherche langage adaptéCherche tuto pour les syntaxe des .bat
[PHP] Cherche bons programmeurs pour site web ...Cherche annuaire de lien aussi top que phBB2 pour les forums
Je cherche des lignes de progs pour faire de la 3dcherche aide pour prog
Plus de sujets relatifs à : [3D] Cherche differents algos de flitrage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR