Мегатекстуры в Блитц3Д
Для моего "суперпаверфуллещенедоделанногоредакторакартдлясво ейсуперпупернедоделанойигрушки" желательно использование мегатекстур для раскрашивания террейнов. Чем больше разрешение - тем лучше. Дак в чем вопрос: возможно ли в принципе использование текстур сверхвысокого разрешения в блитце да и еще постоянное процедурное разрезание этого чуда на мелкие фрагменты? Или я это загнул?
|
Ответ: Мегатекстуры в Блитц3Д
загнул. Луркай в сторону Xors3D и вершинно\пиксельных шейдеров
|
Ответ: Мегатекстуры в Блитц3Д
Цитата:
|
Ответ: Мегатекстуры в Блитц3Д
Цитата:
|
Ответ: Мегатекстуры в Блитц3Д
Цитата:
|
Ответ: Мегатекстуры в Блитц3Д
для терейна с мегатекстурой не нужно особо никаких шейдеров.
я делал так (в своёмдвижке) - делил терейн на квадтри и по геометрии и по текстуре одинаково и стримил нужные куски текстуры фоном. для террейна это более эффективно, чем general-purpose мегатекстуры. пока текстура не застримена, показывал кусок текстуры максимального загруженного лода. сможешь в блице загружать текстуры в отдельном потоке - может и сделаешь. Цитата:
никогда бы не поверил что буду кому-то советовать блиц, но такие дела |
Ответ: Мегатекстуры в Блитц3Д
Цитата:
Она может отлично подойти например для математики, библиотеки физики и т. п. в отдельном потоке. Что-то грузить нежелательно (хотя если оно не связано с блицем). Но всё это нестабильно, хотя ладит даже с Хорсом (под Blitz3D и BlitzPlus). ИМХО |
Ответ: Мегатекстуры в Блитц3Д
Цитата:
|
Ответ: Мегатекстуры в Блитц3Д
Цитата:
|
Ответ: Мегатекстуры в Блитц3Д
ещё сам по себе DX юзать из нескольких потоков может дать непредсказуемый эффект, т.к. если он в момент создания текстуры чето в какую-то память записывает, то при двойной попытке записи из разных потоков будет краш. В дх9 есть флажок MULTITHREADED, который добавляет мутексы повсюду в нём, в дх7 вроде нет, и вообще это лишний оверхед и не круто его юзать. Только с ДХ10 добавили нормальную многопоточность.
ну и сам блиц может кроме текстуры, в какую то свою общую память что-то писать. чтобы обезопаситься, лучше создавать все текстуры один раз - для всех квадтри кусков можно иметь одинаковое разрешение, а кол-во текстур подсчитать какое максимально видно на экране при выбранных настройках дистанции до переключения на след. лод. я так и делал по сути в своём движке - никаких динамических аллокаций. в своём потоке ты только загружаешь тексы с харда в ОЗУ, не трогая блиц и ДХ. далее в своей либе синхронно с блицем вызываешь UpdateTexture (надеюсь он есть в дх7). Ах да, для его юзанья лучше текстуры с правильными флагами создавать тоже в своей либе. Да и загрузку тоже делай в своей либе, чтобы сразу 1 fread, а не 100500 ReadByte. -- UpdateTexture сам может вызывать подлагивания, если каждая текстура (кусок мегатексы) слишком большая, лучше потестить с разными размерами. Можно большую тексу апдейтить по кускам ещё за несколько кадров. |
Часовой пояс GMT +4, время: 05:03. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot