SPU adventures

Feb 14, 2009 00:25

В порядке реализации ( Read more... )

tech

Leave a comment

Comments 12

wizzard0 February 16 2009, 03:29:20 UTC
А порча старого стэйта бывает? С edit-and-continue это интересно. Или оно pure functional и не пишет в то место, откуда исходные данные берет? :)

Reply

zeux February 16 2009, 18:41:20 UTC
Вопрос не очень понял, отвечу как могу. Есть input data, есть output data - иногда output data включает в себя подмножество input data (т.е. алгоритм меняет данные inplace). Так или иначе, никакого неявного состояния нет - разумеется, код с багом может испортить output data (записать некорректную), или вообще крашнуться.

Reply

wizzard0 February 16 2009, 18:43:35 UTC
Ага, спасибо. Вроде понял.

Собственно и хотелось узнать, inplace или не inplace, и пытается ли оно как-то защититься от собственных багов)

Reply


mez0n February 24 2009, 13:09:35 UTC
А что, Эдж не понравился? Он же много чего умеет. И кулинги всевозможные, компрессию, скиннинг и распаковку-запаковку аттрибутов всех.

Reply

zeux February 25 2009, 08:28:44 UTC
Ну, эээ, эдж совсем не про то. Per-triangle/per-vertex из всего описанного - только бленд шейпы.
Компрессия - т.к. стриминга у нас нет ни в одном проекте, то своего PPU-side декомпрессора вполне хватает пока что.

Reply

mez0n February 25 2009, 11:08:13 UTC
Ок. Объясню суть вопроса.

У меня с эджем так отношения сложились. Надо было скиннинг сделать на СПУ. Причины опустим. =) Сел я, значит, за клавиатуру. Первым делом написал на ППУ простенькую реализацию - только для конкетного формата вертексов. А потом как подумал, что мне на надо будет поддержать все форматы для нормалей-бинормалей-позишенов, да чтобы на СПУ, да чтобы быстро работало... Лень стало самому писать. Дай, думаю, гляну, что в эдже. А там все есть. И если прикрутить, можно кроме скининга еще всяких полезностей поиметь. Только флажки включай-выключай, да форматы меняй. Что касается скорости, то вряд ли я своими руками напишу что-то лучше за разумное время. Ну так, слово-за-слово я и вставил эдж в проект.

Вот я поэтому и спросил. Если бы бленд шейпы надо было бы делать, я, наверное, тоже бы прикрутил эдж. Отсюда удивление - что, не понравился?

Reply

zeux February 25 2009, 12:12:02 UTC
Есть два варианта - либо интегрировать edge целиком (куллинг, decompression/recompression, blend shapes, skinning), либо из edge для blend shapes использовать только функцию блендинга куска вершин, влезшего в LS. Первый вариант out of scope был на момент реализации blend shapes (да и есть), на данный момент это не нужно да и память требует. Второй вариант теоретически был бы возможен, практически на данный момент (у нас сейчас только три варианта структуры вершины для blend shapes, отличающиеся набором компонент; притом сомневаюсь что в дальнейшем изменится количество вариантов, изменится скорее их тип) это не сэкономило бы времени на реализацию - ну т.е. все равно писать экспорт часть полностью, рантайм обвязку на PPU, рантайм обвязку на SPU, юнит тесты - экономится написание собственно кода про blend, которого килобайт 10 наверное.

Reply


zeux, ура, ура, ура! kitya February 27 2009, 00:17:48 UTC
Поздравляю с днем рождения, ешь варенье и печенье!

Reply


castana_ninow September 18 2010, 08:13:50 UTC
zeux- вливайся в друзья

Reply


Leave a comment

Up