2010-05-24 11 views
1

J'ai posé cette question sur le forum pv3d et pas une seule personne ne pouvait, ou se souciait d'y répondre. Je suis relativement nouveau à 3d donc je m'excuse si c'est le bon sens pour certains.Shader vs Shader Matériel, papervision spécifique, aperçu général bienvenue

J'ai une sphère, dans laquelle j'applique un CellMaterial. Ça a l'air génial. J'ai remarqué que dans le sdk de papervision, il y a aussi un CellShader.

Devrais-je utiliser ceci en accord avec le CellMaterial? Devrait-il s'agir de l'un ou de l'autre? Est-ce que le shader est une pratique obsolète pour le matériau Shader? Mes pensées initiales étaient que le shader s'applique à l'ensemble de la scène, tandis que les matériaux peuvent être appliqués uniquement aux objets.

La documentation semble montrer le contraire.

Quel est l'avantage de l'utilisation d'un CellShader et d'un CellMaterial? J'adore vraiment obtenir une certaine inclusion ambiante là-bas un peu comment.

Répondre

1

Si vous êtes juste après l'apparence de la cellule, et rien d'autre, CellMaterial est votre choix. Le but de CellShader est de le mélanger avec un BitmapMaterial dans un ShadedMaterial.

Dites que vous appliquez un GaraudMaterial et aimez le look, mais vous voulez aussi une texture dedans. Impossible de faire cela avec un GaraudMaterial, mais si vous avez un BitmapMaterial et un GaraudShader, vous pouvez créer un ShadedMaterial qui utilise les deux.

par exemple.

var bitmapMaterial:BitmapMaterial = new BitmapMaterial(yourBitmapData); 
var shader:PhongShader = new PhongShader(yourLight,0xFFFFFF, 0x000000,0,yourBumpMap); 
//this uses the two above 
var shadedMaterial:ShadedMaterial = new ShadedMaterial(bitmapMaterial,shader); 
//apply it to something 
var sphere:Sphere = new Sphere(shadedMaterial,250,10,10); 

Pour plus d'explications, consultez la section Jim Foley's post. En ce qui concerne l'occlusion ambiante, le meilleur moyen d'obtenir l'effet est bake the shadows dans la texture. Vous faites cela avec l'éditeur 3D de votre choix (3dsmax, maya, blender, etc.), et cela signifie que les lumières/ombres sont restituées dans la texture. Il ya un peu de travail pour ce faire dynamically, n'ont pas vérifié si cela fait dans la dernière version de Papervision cependant.

kode80 ssao