Ко мне поступила информация, зачем 3D-модели нужно несколько каналов наложения. В играх - для лайтмеппинга(2 штуки), в кино - вот ссылка.
http://render.ru/xen/threads/tekstury-v-kino.38996/
Исходя из этого, чтобы сделать красивую картинку, нужно убрать вовсе все дополнительные каналы(анимационные попадают под нож первыми). И всё равно будет не хватать семантик. Вот такой у меня формат вершины:
struct VS_INPUT
{
float3 Position: POSITION;
float3 Texcoord0 : TEXCOORD0;
float3 Texcoord1 : TEXCOORD1;
float3 Texcoord2 : TEXCOORD2;
float3 Texcoord3 : TEXCOORD3;
float3 Texcoord4 : TEXCOORD4;
float3 Normal0 : NORMAL0;
float3 Normal1 : NORMAL1;
float3 Normal2 : NORMAL2;
float3 Normal3 : NORMAL3;
float3 Normal4 : NORMAL4;
float3 Binormal0 : BINORMAL0;
float3 Binormal1 : BINORMAL1;
float3 Binormal2 : BINORMAL2;
float3 Binormal3 : BINORMAL3;
float3 Binormal4 : BINORMAL4;
float3 Tangent0 : TANGENT0;
float3 Tangent1 : TANGENT1;
float3 Tangent2 : TANGENT2;
float3 Tangent3 : TANGENT3;
float3 Tangent4 : TANGENT4;
float3 VertexColor0 : COLOR0;
float3 VertexColor1 : COLOR1;
float3 VertexColor2 : COLOR2;
float3 VertexColor3 : COLOR3;
float3 VertexColor4 : COLOR4;
};Вот такие дела. Максимум 32 слота.
Сейчас я буду делать полигональный движок. Давно хотел, только сейчас получилось. Это приложение без интерфейса, которое делает свою работу и само закрывается(2 секунды на исполнение). Результат я смотрю в 3ds Max. Это Inset Tool для одного полигона(средства 3ds Max не используются).
Virtual_Light
зачем для цвета float3 ?
задаток под HDR чтоли?
Virtual_Light
Tangent и Binormal не нужны. Их легко считать в пиксельном шейдере из позиции вершиины, нормали, текстурных координат.
5 каналов для цвета вершин тоже не нужно, имхо.
И какой смысл несут 5 каналов нормалей? :)
Текстурные координаты в редакторах вообще лучше отдельным буфером цеплять, ибо в большинстве случаев будут использовать кучу отдельных лееров, а перед экспортом в движок будут запекать все это в одну текстуру.
Итого формат врешины я вижу примерно таким:
struct VS_INPUT { float3 Position : POSITION; float3 Normal : NORMAL; float4 VertexColor : COLOR; float3 Texcoord[UVLayersCount] : TEXCOORD; }
Где UVLayersCount задается через дефайн, и для текстурных координат у тебя отдельные не Interleaved буфера, которые ты можешь цеплять на ходу на модель из рантайма.
Будет новая версия приложения с новыми системными требованиями. DirectX 11.1 - всё, что я могу себе позволить(NVidia GTX 660). Реализовывать даже не начал, но целюсь. Ещё целюсь на GPU Computing(поэтому NVidia и Cuda). Пример изучаю с утра, всё понятно и работает.
Добавлен инструмент Twist(упрощённо).
Virtual_Light не делать то, что зависит от железа определенного производителя.
Что там со скриптами? Я могу в скрипте взять грань #4 для определенного меша, получить образующие её вершины и переместить их вдоль нормали грани #4?
cin
> Virtual_Light не делать то, что зависит от железа определенного производителя.
Нет. Многие солидные разработчики используют Куду, и я тоже могу. Но ваше требование учту, просто считаться это будет на CPU. Сами решайте, это лучше или нет.
cin
> Что там со скриптами? Я могу в скрипте взять грань #4 для определенного меша,
> получить образующие её вершины и переместить их вдоль нормали грани #4?
Всё нормально. Будет Python через Boost. Приделаю его ко всему остальному готовому. Пока занят другим.
Добавил ноды Bend и Noise.
Не совсем понял товарищей, которые там что-то говорили, что надо бросать.... Чел решил, что может сделать утилиту, которая будет в чем-то лучше другого софта... Ну так бог/сатана в помощь, если сделает, что собрался - никому от этого хуже не будет, в чем проблема?
П.С. Сам не моделю, но не вижу беды в том, что в мире станет одним инструментом больше. Автору - не слушать нытиков и двигаться к цели. Ну и удачи на этом пути.
Virtual_Light тебе надо понять что сейчас нужно моделлерам.
Реализуй оперирование вершинами, рёбрами, треугольниками, полигонами.
Делай релизы чтобы люди могли оценить твои старания без сборки из исходников.
Grayf24
> Не совсем понял товарищей, которые там что-то говорили, что надо бросать....
> Чел решил, что может сделать утилиту, которая будет в чем-то лучше другого
> софта...
А я не совсем понимаю человека, решившего сделать "трехмерный" редактор с возможностями крупных
CGI рендеров в реальном времени. Глянь на ссылку в посте #165, что он сделает если не знает чего хочет а
главное ему пофиг как сделаны подобные вещи а на замечания других автоматом ложится "болт".
Дескать пусть мучается а мы будем смотреть и тихо ржать. Ну OK, тогда молчу.
TheLightWay
Человек считает, что идет по верному пути, а остальные неправы. Его право. Придет к успеху - хорошо будет и другим. Не придет - ну, это был его путь и его риск. Но если бы никто ничего не пытался - мы бы до сих пор в пещерах жили.
Посты, которые вредят проекту, будут удаляться. Ваше право писать, мое право удалять. Портить себе настроение я не позволю.
Разбирался с поддержкой Boost.Python. Разобрался, могу написать в приложении текст, выполнить его на интерпретаторе и вернуться в приложение, к C++. Задача, которую поставил прошлым летом, выполнена, можно писать API. Написал окно ScriptEditor, с подсветкой синтаксиса Python.
Тема в архиве.