Сообщения на форуме пользователя Andrey (50 стр.)
Эффективный куллинг растительности. | 2 июня 2010 | 12:24 | #394 |
---|
.L
> я надеюсь ты не от 3D говоришь
innuendo
> у тебя в каком пространстве по 2 точкам считается ?
вообще речь идет про 3D пространство.
> я надеюсь ты не от 3D говоришь
innuendo
> у тебя в каком пространстве по 2 точкам считается ?
вообще речь идет про 3D пространство.
Эффективный куллинг растительности. | 2 июня 2010 | 11:39 | #389 |
---|
.L
> Вот ёще что: не нравится мне мой медленный фрустум куллинг:
проверяй 2 точки бокса. Нужно проверять всегда максимальную и минимальную, в зависимости от ориентации эти точки быстро рассчитываются.
> Вот ёще что: не нравится мне мой медленный фрустум куллинг:
проверяй 2 точки бокса. Нужно проверять всегда максимальную и минимальную, в зависимости от ориентации эти точки быстро рассчитываются.
Есть ль принципиальная разница между языками шейдеров? | 1 июня 2010 | 12:59 | #3 |
---|
Эффективный куллинг растительности. | 31 мая 2010 | 18:00 | #328 |
---|
slava_mib
> "Принцип Парето" - слышал о таком?
щас буду просвещаться :)
>Мега-спецы по асму и кэшам тут нужны как мёртвому припарка.
тут я не согласен полностью. Скорость CPU растет и доступ к памяти нет. Большинство проблем быстродействия после алгоритмической оптимизации это проблемы доступа к памяти, как следствие неверно выбранных алгоритмов и структур данных, ну а что-бы правильно это все организовать как раз знания про кеш нужны.
>Почему ты считаешь, что геймдев - это нечто особенное, из ряда вон выходящее?
да потому что написать клиент к СУБД напишет школьник, а вот движок с миллионом поликов и 3000 объектов в кадре с мягкими тенями, скелеткой в 200 костей на модель, с 20 источниками света, c постпроцессом, эффектами, сложной системой частиц(нужное добавить...) и что-бы не тормозило, не вылетало, не жрало немерено памяти напишет далеко не каждый.
> "Принцип Парето" - слышал о таком?
щас буду просвещаться :)
>Мега-спецы по асму и кэшам тут нужны как мёртвому припарка.
тут я не согласен полностью. Скорость CPU растет и доступ к памяти нет. Большинство проблем быстродействия после алгоритмической оптимизации это проблемы доступа к памяти, как следствие неверно выбранных алгоритмов и структур данных, ну а что-бы правильно это все организовать как раз знания про кеш нужны.
>Почему ты считаешь, что геймдев - это нечто особенное, из ряда вон выходящее?
да потому что написать клиент к СУБД напишет школьник, а вот движок с миллионом поликов и 3000 объектов в кадре с мягкими тенями, скелеткой в 200 костей на модель, с 20 источниками света, c постпроцессом, эффектами, сложной системой частиц(нужное добавить...) и что-бы не тормозило, не вылетало, не жрало немерено памяти напишет далеко не каждый.
Эффективный куллинг растительности. | 31 мая 2010 | 17:49 | #324 |
---|
innuendo
> я тоже там работал, зато если напортачишь - патчем не отделаешься :)
по скорости напортачил по потреблению по памяти - пофигу в большинстве случаев все хорошо! студентов пед-университета банковский софт писать набирают, а в объявлении в шутку обложка с книги "С++ для чайников" Про что ты говоришь??? :)))
Да, и не нужно говорить про безопасность информации, там другого уровня люди сидят, нежели разработчики модулей кредитования, вкладов и т.д....
Coriolis
> так оно и есть для прикладных программистов, ага.
по сути геймдев как и написание приложений 3D графики, реального времени тоже пишут прикладные программисты, но... уровень/знания/предметная область разные по сложности на порядок.
Z
> Вот меня какая мъсль посетила... может просто slava_mib ошибся индустрией?
> Может он латентнъй програмист банкового софта? И сидит и мучается сейчас - а
> надо просто осознатся.
Мне кажется не стоит спорить вот так вот, лучше обмениваться опытом, давайте жить дружно :) Хотя посты были интересные без учета ненужных переходов на личности.
> я тоже там работал, зато если напортачишь - патчем не отделаешься :)
по скорости напортачил по потреблению по памяти - пофигу в большинстве случаев все хорошо! студентов пед-университета банковский софт писать набирают, а в объявлении в шутку обложка с книги "С++ для чайников" Про что ты говоришь??? :)))
Да, и не нужно говорить про безопасность информации, там другого уровня люди сидят, нежели разработчики модулей кредитования, вкладов и т.д....
Coriolis
> так оно и есть для прикладных программистов, ага.
по сути геймдев как и написание приложений 3D графики, реального времени тоже пишут прикладные программисты, но... уровень/знания/предметная область разные по сложности на порядок.
Z
> Вот меня какая мъсль посетила... может просто slava_mib ошибся индустрией?
> Может он латентнъй програмист банкового софта? И сидит и мучается сейчас - а
> надо просто осознатся.
Мне кажется не стоит спорить вот так вот, лучше обмениваться опытом, давайте жить дружно :) Хотя посты были интересные без учета ненужных переходов на личности.
Эффективный куллинг растительности. | 31 мая 2010 | 17:16 | #318 |
---|
slava_mib
> Программеров хороших у нас целая куча - в банках, в торговле, на производстве
> работает куча классного, высокообразованного народу.
Ты ошибаешься, там далеко не тот уровень программирования нужен, там не нужно мс выжимать и убирать кешь промахи, зачастую не нужно знать архитектуру платформы, можно тупо пихать такие конструкции std::map<T1, std::map<T2, T3> >, можно напихать везде boost, RTTI, исключений и т.д. это все прокатит, там не нужно знать и оценивать сложность алгоритмов, там не нужно изучать иногда asm код и многое другое, работал я там как-то...
> Программеров хороших у нас целая куча - в банках, в торговле, на производстве
> работает куча классного, высокообразованного народу.
Ты ошибаешься, там далеко не тот уровень программирования нужен, там не нужно мс выжимать и убирать кешь промахи, зачастую не нужно знать архитектуру платформы, можно тупо пихать такие конструкции std::map<T1, std::map<T2, T3> >, можно напихать везде boost, RTTI, исключений и т.д. это все прокатит, там не нужно знать и оценивать сложность алгоритмов, там не нужно изучать иногда asm код и многое другое, работал я там как-то...
Эффективный куллинг растительности. | 31 мая 2010 | 15:56 | #300 |
---|
innuendo
> у нас для сортировки по материалам std::sort, правда с __forceline :)
это точно не избавляет от проблем с кэш промахами и LHS
> у нас для сортировки по материалам std::sort, правда с __forceline :)
это точно не избавляет от проблем с кэш промахами и LHS
Эффективный куллинг растительности. | 31 мая 2010 | 14:21 | #295 |
---|
Z
>P.S.: Кстати, сортировка ROP-ов прямиком (особенно если там есть обращение по
> указателям в самом ROP-e) прекрасно видна в профайлере на конзоли, для 2-3к
> обьектов в кадре, по 2-3 пасса там набегает огромное количествo LHS и
> кеш-миссов.
Епт!!! Охренеть :)))))))
А на PC, XBOX-360 ?
>P.S.: Кстати, сортировка ROP-ов прямиком (особенно если там есть обращение по
> указателям в самом ROP-e) прекрасно видна в профайлере на конзоли, для 2-3к
> обьектов в кадре, по 2-3 пасса там набегает огромное количествo LHS и
> кеш-миссов.
Епт!!! Охренеть :)))))))
А на PC, XBOX-360 ?
LHS - Load Hit Store?
Каково оптимальное кол-во буферов вершин в хорошем движке? | 31 мая 2010 | 11:50 | #85 |
---|
innuendo
>в релизе проверяет ?
в release если есть ошибки просто падает производительность. Наверняка что-то проверяет, что-бы не угробить систему в виде BSOD.
>а в DX10 нельзя что ли ?
не вдавался в подробности насчет этого.
>в релизе проверяет ?
в release если есть ошибки просто падает производительность. Наверняка что-то проверяет, что-бы не угробить систему в виде BSOD.
>а в DX10 нельзя что ли ?
не вдавался в подробности насчет этого.
Каково оптимальное кол-во буферов вершин в хорошем движке? | 31 мая 2010 | 11:31 | #83 |
---|
SNVampyre
> Ну она почти незаметна. Хотя в D3D дип немного тяжелее, чем в OpenGL из-за
> прослойки между драйвером.
Наверное не из-за этого. Я думаю что ситуация такая.
Direct3D API при его DIP(IDirect3DDevice9::DrawIndexedPrimitive) проверяет все. Константы шейдеров, соответствие атрибутов вершин в шейдере и в вершинных буферах, правильность индексов в индексном буфере, правильность слотов текстур и т.д. OpenGL API выдает ошибки при вызове каждой функции которые происходили перед вызовом glDrawElements/glDrawRangeElements. Поэтому время в OpenGL равномерно распределяется при подготовке к DIP вызову и нет такой синхронизации между CPU/GPU как в Direct3D при вызове DIP.
>А в OpenGL можно делать любой формат вершины,
а разве это часто так нужно что является таким преимуществом?
> Ну она почти незаметна. Хотя в D3D дип немного тяжелее, чем в OpenGL из-за
> прослойки между драйвером.
Наверное не из-за этого. Я думаю что ситуация такая.
Direct3D API при его DIP(IDirect3DDevice9::DrawIndexedPrimitive) проверяет все. Константы шейдеров, соответствие атрибутов вершин в шейдере и в вершинных буферах, правильность индексов в индексном буфере, правильность слотов текстур и т.д. OpenGL API выдает ошибки при вызове каждой функции которые происходили перед вызовом glDrawElements/glDrawRangeElements. Поэтому время в OpenGL равномерно распределяется при подготовке к DIP вызову и нет такой синхронизации между CPU/GPU как в Direct3D при вызове DIP.
>А в OpenGL можно делать любой формат вершины,
а разве это часто так нужно что является таким преимуществом?
Cg Shader и древняя карточка. | 28 мая 2010 | 11:11 | #13 |
---|
innuendo
> как там с DX не скажу
vs_1_1
> как там с DX не скажу
vs_1_1
Эффективный куллинг растительности. | 28 мая 2010 | 11:10 | #207 |
---|
slava_mib
> часть в виде индексов (скажем, индекс "матрицы" трансформации)
что-бы меньше было подготовительного копирования?
>часть в виде индексов...Указателями мне показалось, что будет медленнее.
по индексу все равно наверняка будешь к массиву обращаться, т.е. чсто хранить готовый указатель что индекс по моему все равно. Тут уже asm код смотреть нужно.
Тут идет речь я так понимаю про промахи кэша.
> часть в виде индексов (скажем, индекс "матрицы" трансформации)
что-бы меньше было подготовительного копирования?
>часть в виде индексов...Указателями мне показалось, что будет медленнее.
по индексу все равно наверняка будешь к массиву обращаться, т.е. чсто хранить готовый указатель что индекс по моему все равно. Тут уже asm код смотреть нужно.
Тут идет речь я так понимаю про промахи кэша.
Эффективный куллинг растительности. | 27 мая 2010 | 19:02 | #197 |
---|
slava_mib
да, круто сделано. Классическая схема так сказать правильной системы рендеринга.
да, круто сделано. Классическая схема так сказать правильной системы рендеринга.
Эффективный куллинг растительности. | 27 мая 2010 | 15:26 | #195 |
---|
slava_mib
> а иначе никак и не сделать, даже если бы захотел - тогда батчинг полностью отвалился бы, а у меня только благодаря ему скорость и держится на боле-мене >приемлемом уровне...
а тут вот поподробней можно?
> а иначе никак и не сделать, даже если бы захотел - тогда батчинг полностью отвалился бы, а у меня только благодаря ему скорость и держится на боле-мене >приемлемом уровне...
а тут вот поподробней можно?
Эффективный куллинг растительности. | 27 мая 2010 | 14:32 | #193 |
---|
slava_mib
>т.е. самого функционала какой-либо отрисовки там, естественно, нет вообще никаким боком - объекты просто ставятся в очередь рендера и всё.
ага вот теперь более менее понятно.
>т.е. самого функционала какой-либо отрисовки там, естественно, нет вообще никаким боком - объекты просто ставятся в очередь рендера и всё.
ага вот теперь более менее понятно.