Пользовательские поля в формате вертекса

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Пользовательские поля в формате вертекса

Сообщение VBTerminator » 06.10.2009 (Вт) 12:03

Подскажите, пожалуйста, как в вертексную структуру добавить свои поля, которые бы игноировались DirectX?
Пример:
Код: Выделить всё
Type Vertex
  Pos As D3DVECTOR
  tu As Single
  tv As Single

  JointIndex As Long   'Моё поле
End Type


Примечание: мои поля могут быть типа Byte/Integer/Long.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Пользовательские поля в формате вертекса

Сообщение iGrok » 06.10.2009 (Вт) 12:37

Никак. Создавать новую структуру, одним из полей которой будет вертекс, или ссылка(указатель) на вертекс.
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пользовательские поля в формате вертекса

Сообщение Mikle » 06.10.2009 (Вт) 16:26

Если используешь вертексный шейдер - то совершенно без разницы, как называются поля. Ты сам пишешь программу, их использующую. Можно задействовать tu-tv 2-8, только загонять туда Long (Byte, Integer) придётся либо через CopyMemory, либо переопределив VarPtr, типа FtoDW. А можно в структуре их определить, как Long, а в Declaration шейдера уже как tu-tv, лишь бы размер совпадал, есть и свободные Long поля, типа Specular.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Пользовательские поля в формате вертекса

Сообщение VBTerminator » 08.10.2009 (Чт) 19:48

Mikle писал(а):Если используешь вертексный шейдер - то совершенно без разницы, как называются поля. Ты сам пишешь программу, их использующую.

Мне нужно не переименование полей, а добавление нового поля, до которому DX было бы плевать.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Пользовательские поля в формате вертекса

Сообщение FireFenix » 08.10.2009 (Чт) 22:20

VBTerminator писал(а):
Mikle писал(а):Если используешь вертексный шейдер - то совершенно без разницы, как называются поля. Ты сам пишешь программу, их использующую.

Мне нужно не переименование полей, а добавление нового поля, до которому DX было бы плевать.

Описываема структура идёт в буфер/шейдер => находится в ней могут тока те параметры которые идут по соглашению передачи в буфер/шейдер

Если же тебе для шейдера нехватает объявлённых параметров - объявляй новые, которые есть в соглашении
Если же просто для программы нужно пару переменных, то тут уже как получиться...

- как вариант обьявить свою структуру и при передачи в буфер - конвертировать в другую
- или же можно сделать двумерный массив, где первая размерность - структура вертекса, а вторая - твоя структура.
При обращении считать что индекс индекс вертекса равен индексу твоей структуры в массиве
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пользовательские поля в формате вертекса

Сообщение Mikle » 09.10.2009 (Пт) 19:05

VBTerminator
Зачем тебе именно новое поле? Ты что, все возможные уже задействовал?

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Пользовательские поля в формате вертекса

Сообщение VBTerminator » 11.10.2009 (Вс) 11:51

Mikle писал(а):VBTerminator Зачем тебе именно новое поле? Ты что, все возможные уже задействовал?

В поле JointIndex у меня хранится дополнительная инфа о вертексе, которая интересует только мою программу, DX должен её игноировать при построении изображения.
Придётся тогда использовать массив, в котором и будет храниться доп. информация о вертексе, где индекс элемента в массиве равен порядковому номеру вертекса, который описывается в элементе массива.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Пользовательские поля в формате вертекса

Сообщение Mikle » 12.10.2009 (Пн) 9:33

VBTerminator писал(а): хранится дополнительная инфа о вертексе, которая интересует только мою программу, DX должен её игноировать

DX и так игнорирует её. Например добавь в вертекс поле Specular и D3DFVF_SPECULAR в флаговое описание. Можешь хранить в этом поле что угодно до тех пор, пока ты не используешь спекуляр.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Пользовательские поля в формате вертекса

Сообщение VBTerminator » 13.10.2009 (Вт) 16:41

Mikle писал(а):DX и так игнорирует её. Например добавь в вертекс поле Specular и D3DFVF_SPECULAR в флаговое описание. Можешь хранить в этом поле что угодно до тех пор, пока ты не используешь спекуляр.

Спасибо! :D


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList