forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Передача текстур в шейдер без загрузки (http://forum.boolean.name/showthread.php?t=17867)

tirarex 11.02.2013 23:19

Передача текстур в шейдер без загрузки
 
подскажите пожалуйста : у меня есть модель
текстуры лежат в папке с ней


вопрос

в 1 меше - 1 обьект может быть наложено 4 текстуры
надо передать дифуз в шейдер + узнать имя текстуры и добавить к имени _n

FREE MAN 12.02.2013 00:50

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252471)
подскажите пожалуйста : у меня есть модель
текстуры лежат в папке с ней


вопрос

в 1 меше - 1 обьект может быть наложено 4 текстуры
надо передать дифуз в шейдер + узнать имя текстуры и добавить к имени _n

По подробней распиши не совсем понял вопрос.

tirarex 12.02.2013 10:24

Ответ: Передача текстур в шейдер без загрузки
 
Ну у меня есть меш загруженный через xloadmesh тоесть обьеденён в 1 сюрфейс

на меше 4 текстуры на 4 разных поверхностях

мне надо получить имя каждой из 4 текстур и наложить через
шейдер еще и бэмп мап

как это реализовать ?

FREE MAN 12.02.2013 14:01

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252511)
Ну у меня есть меш загруженный через xloadmesh тоесть обьеденён в 1 сюрфейс

на меше 4 текстуры на 4 разных поверхностях

мне надо получить имя каждой из 4 текстур и наложить через
шейдер еще и бэмп мап

как это реализовать ?

Почитай замечательный учебник для Ксорса по работе с шейдерами http://area.xors3d.com/depository/do...first-steps-ru
Там есть ответ на твой вопрос.
по вопросу конкретно, тебе надо указать в шейдере автоматическое определение текстуры слоя.
Код:

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


tirarex 12.02.2013 17:24

Ответ: Передача текстур в шейдер без загрузки
 
То есть натянуть в максе диффуз на 0 слой , нормаль на 1
а это работает с форматом 3ds ?\

upd

спасибо потренеровался на примере falloff
работает отлично без загрузки и передачи текстур в шейдер
еще раз спасибо

FREE MAN 12.02.2013 17:34

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252534)
То есть натянуть в максе диффуз на 0 слой , нормаль на 1
а это работает с форматом 3ds ?

Да так будет работать! Забудь вообще про 3DS формат, используй B3D.

tirarex 12.02.2013 18:07

Ответ: Передача текстур в шейдер без загрузки
 
а как наложить текстуру на 1 слой не трогая 0 слой

FREE MAN 12.02.2013 19:59

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252537)
а как наложить текстуру на 1 слой не трогая 0 слой

а зачем это тебе надо? типа просто бамп был или дифузка была?

tirarex 12.02.2013 20:16

Ответ: Передача текстур в шейдер без загрузки
 
мне надо чтоб на 1 диффуз на 2 бамп и это в 3дс

FREE MAN 12.02.2013 20:41

Ответ: Передача текстур в шейдер без загрузки
 
А так нельзя?
texture diffuseTexture : TEXTURE_1;
texture normalTexture : TEXTURE_2;

tirarex 12.02.2013 20:56

Ответ: Передача текстур в шейдер без загрузки
 
нет я не про шейдер
спрашиваю
как в 3дс максе наложить текстуры на 0и1 слой

tormoz 13.02.2013 03:03

Ответ: Передача текстур в шейдер без загрузки
 
У меня батхерт когда используют 3ds формат из-за упоротости. У меня самый отстойный формат, зато самый новый 3дмах!
Писнец. Лисятник.
Какие тут нафиг шейдеры, товарисч в азах тупит, в форматах, экспорте моделей и текстурных слоях.

tirarex 13.02.2013 10:35

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tormoz (Сообщение 252589)
У меня батхерт когда используют 3ds формат из-за упоротости. У меня самый отстойный формат, зато самый новый 3дмах!
Писнец. Лисятник.
Какие тут нафиг шейдеры, товарисч в азах тупит, в форматах, экспорте моделей и текстурных слоях.

Частично согласен что 3дс не самый лучший формат

но для работы самое то а когда шлифовать начнёшь тогда можно и на бзд перейди

не знаю как другие но я по 100 раз импортирую карту для игры в макс чтоб чтото под корректировать и пока это самы удобный формат

даже если и пере иду с 3дс то на fbx , слышал в нём всё работает тс кости текстурные слои итд

p.s. у меня 7 макс :-D

FREE MAN 13.02.2013 13:16

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252599)
Частично согласен что 3дс не самый лучший формат

но для работы самое то а когда шлифовать начнёшь тогда можно и на бзд перейди

не знаю как другие но я по 100 раз импортирую карту для игры в макс чтоб чтото под корректировать и пока это самы удобный формат

даже если и пере иду с 3дс то на fbx , слышал в нём всё работает тс кости текстурные слои итд

p.s. у меня 7 макс :-D

Для Xors3d самый оптимальный формат это B3D, уясни это. FBX слишком тяжелый чемодан не советую его юзать в двиге.

tirarex 13.02.2013 16:45

Ответ: Передача текстур в шейдер без загрузки
 
Хорошо буду юзать бзд но всё таки как наложить 2 текстуры на 1 модель на разные слои в максе ?

tormoz 13.02.2013 21:19

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252620)
Хорошо буду юзать бзд но всё таки как наложить 2 текстуры на 1 модель на разные слои в максе ?

Texture layers в Material Editor

http://www.onigirl.com/pipeline/
Поставь плагин
Поставь патч если версия макса выше 5ой (плагин для 6-го макса. но работает с 6-го по 8-ой)

Создание материала:

"M" -> standart -> Blitz3d Brush

Создание субматериалов:

Texture Layer (None) -> Blitz3d Map -> BitMap -> выбираем текстуру.


Настройки материала:

Общие:

Color - цвет материала
Alpha - прозрачность (общая)
Shine - блеск

ФХ:

Full bright - полное освещение независимо от источников
Flat Shaded - не трогать
Vertex Color - не трогать
2-Sided - двухсторонний (будет виден со всех сторон)
Disable Fog - отключит туман (не трогать)
Vrtex Alpha - не трогать

Настройки субматериалов:

Blend (смешивание текстур в материале)

Alpha - с прозрачностью
Multiply - умножение (дефолт)
Add - сумирование (с цветом материала и др текстурами - "свечение")
Dot3 - бамп (не трогать - оч специфичн штука)
Myltiply2 - двойное умножение (сверх яркость)

Flags (параметры загрузки текстур в движок)

Color - дефолтный флаг (не трогать)
Masked - черное становится прозрачным (только с цветом 0.0.0)
Env Map - "металлизация" (работает на выпуклых поверхностях, к плоскостям не применять. или сделать их слегка выпуклыми)
Hi-color - улучшенная передача цвета (двойной проход расчета - для мелких деталей только нужен)
Alpha - прозрачность по черному цвету (общая) или по альфа-каналу (если он есть)
MipMap - улучшенный просчет рескейла текстуры (четкость, сглаживание пикселизации)
CubeMap - кубическая текстура (иммитация отражения например)
VidMem - текстура в память видеокарты (если нужны манипуляции с ней в реалтайме)


Можно добавить кнопки управления плагином на панель управления :
Customize -> Customize User Interface -> ToolBar->Category -> B3D Pipeline Tools

Потом перетащить все инструменты как обычно.

Настрой B3d Viewer Config - Far 100000

Все. теперь можно жать на B3d Viewer и смотреть, как модель будет выглядеть в движке.

С флажками експорта думаю разберешся.
B3D Extensions отключи - он не нужен

Если текстуры лежат не в папке куда експортируешь модель - поставь флажок Relative Paths


металл - берем текстурку металла и ставим флажок субматериала Env Map
можно сделать оттенок изменением цвета материала.

стекло - тоже текстуру металла с Env Map и ставил на материал Alpha 10-50 %
Меш для Env Map делается немного выпуклым (типа линзы) - тогда очень естественно выглядят переливы.




Владислав 13.02.2013 21:23

Ответ: Передача текстур в шейдер без загрузки
 
поставь max9 (не путай с 2009)
потом поставь плагин b3d pipeline, на него сверху патч
ссылки на загрузку в этой теме:
http://forum.boolean.name/showthread.php?p=181672

После, в максе создаешь материал blitz3d brush, и дальеш уже разберешься

tirarex 13.02.2013 22:46

Ответ: Передача текстур в шейдер без загрузки
 
Сделал как описал тормоз
в итоге на моделе текстур вобще нет

upd

без шейдера текстуры работают

FREE MAN 14.02.2013 00:15

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252670)
Сделал как описал тормоз
в итоге на моделе текстур вобще нет

upd

без шейдера текстуры работают

При экспорте убери галочку с пункта Relative Paths, должно заработать.

tirarex 14.02.2013 00:17

Ответ: Передача текстур в шейдер без загрузки
 
Убрал , не помогло

лучше буду юзать пока 3дс

а потом наверно свой формат запилю

FREE MAN 14.02.2013 00:25

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252682)
Убрал , не помогло

лучше буду юзать пока 3дс

а потом наверно свой формат запилю

А он кофе будет уметь варить?

tormoz 14.02.2013 02:01

Ответ: Передача текстур в шейдер без загрузки
 
А выяснить почему не работают не судьба?
Если ты конечно программист и умеешь делать основное - отлаживать свой код.

Владислав 14.02.2013 10:05

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tirarex (Сообщение 252682)
Убрал , не помогло

лучше буду юзать пока 3дс

а потом наверно свой формат запилю

Ну, а если какие проблемы с xors3d будут - пили свой двиг :-D

tirarex 14.02.2013 10:39

Ответ: Передача текстур в шейдер без загрузки
 
Цитата:

Сообщение от tormoz (Сообщение 252708)
А выяснить почему не работают не судьба?
Если ты конечно программист и умеешь делать основное - отлаживать свой код.

выяснил уже

надо было в коде браш делать
и его уже в шейдер передавать


Часовой пояс GMT +4, время: 09:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot