Сообщение от {pk}fire
В примерах текстуры загружаются и накладываются кодом.
Как ты представляешь себе наложение на один объект около 100 текстур?
Хотя..наверное можно перебрать все сурфейсы, узнать имя текстуры на нём и наложить(точнее передать в шейдер) текстуру с таким же именем с припиской _normal
Я все правильно понял? Все объекты в максе нужно зааттачить. Затем использовать блиц материал(в pipeline), в который можно запихивать до 8 текстур. В итоге dip calls может сократится в 8 раз?
|
В шейдере можно указать, что бы автоматом считались текстуры Diffuse и NormalMap. То есть в 3ds Max-е с начало наложишь нулевым слоем дифузную текстуру и первым Нормалмапу.
В шейдере это делается так >
//Varriables
const float4x4 MatWorldViewProj;
const float4x4 MatWorld;
texture diffuseTexture : TEXTURE_0;
texture normalTexture : TEXTURE_1;
//Textures
// Diffuse Texture
sampler TexDiffuse=sampler_state {
Texture = <diffuseTexture>;
ADDRESSU = WRAP;
ADDRESSV = WRAP;
ADDRESSW = WRAP;
MAGFILTER = LINEAR;
MINFILTER = LINEAR;
MIPFILTER = LINEAR;
};
// NormalMap Texture
sampler TexNormal=sampler_state {
Texture = <normalTexture>;
ADDRESSU = WRAP;
ADDRESSV = WRAP;
ADDRESSW = WRAP;
MAGFILTER = LINEAR;
MINFILTER = LINEAR;
MIPFILTER = LINEAR;
};