Shader vs Shader Material, специфика papervision, приветствуется общее понимание - PullRequest
1 голос
/ 25 мая 2010

Я задал этот вопрос на форуме pv3d, и ни один человек не смог или не захотел на него ответить.

Я относительно новичок в 3d, поэтому прошу прощения, если это здравый смысл для некоторых.

У меня есть сфера, в которой я применяю CellMaterial. Выглядит отлично. Я заметил, что в papervision sdk также есть CellShader.

Должен ли я использовать это в соответствии с CellMaterial? Должно ли это быть одно или другое? Является ли шейдер устаревшей практикой для шейдерного материала?

Мои первые мысли были о том, что шейдер применим ко всей сцене, в то время как материалы могут применяться уникальным образом к объектам.

Документация, кажется, показывает иначе.

Какое преимущество можно получить, если использовать CellShader и CellMaterial? Я действительно люблю получать какие-то эмбиентные включения.

1 Ответ

1 голос
/ 11 сентября 2010

Если вы просто присматриваете за ячейкой и ничего больше, CellMaterial - ваш выбор. Цель CellShader - смешать его с BitmapMaterial в ShadedMaterial.

Скажем, вы применили GaraudMaterial и вам нравится внешний вид, но вы также хотите, чтобы там была текстура. Это невозможно сделать с помощью GaraudMaterial, но если у вас есть BitmapMaterial и GaraudShader, вы можете создать ShadedMaterial, который использует оба.

, например

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);

Для более подробной информации о проверке Пост Джима Фоули .

Что касается Ambient Occlusion, самый дешевый способ получить эффект - это запечь тени в текстуру. Вы делаете это с помощью выбранного вами трехмерного редактора (3dsmax, maya, blender и т. Д.), И это в основном означает, что свет / тени отображаются в текстуре. mr.doob texture baking

Существует некоторая работа по выполнению этого динамически , хотя еще не проверялось ли это в последней версии Papervision.

kode80 ssao

...