Тема: Xors3D
Показать сообщение отдельно
Старый 23.08.2012, 18:02   #601
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Xors3D

Сообщение от {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;
};

Последний раз редактировалось FREE MAN, 04.03.2013 в 00:10.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FREE MAN за это полезное сообщение:
Colossus (27.11.2012), Nex (23.08.2012)