forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Мегатекстуры в Блитц3Д (http://forum.boolean.name/showthread.php?t=18628)

KCEPOKC 15.10.2013 18:01

Мегатекстуры в Блитц3Д
 
Для моего "суперпаверфуллещенедоделанногоредакторакартдлясво ейсуперпупернедоделанойигрушки" желательно использование мегатекстур для раскрашивания террейнов. Чем больше разрешение - тем лучше. Дак в чем вопрос: возможно ли в принципе использование текстур сверхвысокого разрешения в блитце да и еще постоянное процедурное разрезание этого чуда на мелкие фрагменты? Или я это загнул?

Reizel 15.10.2013 19:25

Ответ: Мегатекстуры в Блитц3Д
 
загнул. Луркай в сторону Xors3D и вершинно\пиксельных шейдеров

KCEPOKC 15.10.2013 20:55

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от Reizel (Сообщение 268821)
загнул. Луркай в сторону Xors3D и вершинно\пиксельных шейдеров

Можно попробовать, хотя я скорее хочу на Irrlicht перейти. Не знаю. Ксорс рип:( Да и ирлич бесплатный. Вообщем надо тему отдельную делать:-)
Когда же уже откроют ID Tech. 5:rolleyes:

Reizel 15.10.2013 21:13

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от XoreX (Сообщение 268826)
Можно попробовать, хотя я скорее хочу на Irrlicht перейти. Не знаю. Ксорс рип:( Да и ирлич бесплатный. Вообщем надо тему отдельную делать:-)

ирлихт медленный. Поищи что-нибудь другое

KCEPOKC 15.10.2013 21:19

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от Reizel (Сообщение 268829)
ирлихт медленный. Поищи что-нибудь другое

Давно хотел перелезть на огр, но вот блин пугает его сложность в сборке и огромные конструкции:) Есть вариант юнити, но вот, сволочь, бабки не хочется тратить:-) Мы же все хотим продавать свой проЭкт:crazy: Детские мечты, конечно.
Может предложите кроме этой четверки?:''((

Mr_F_ 15.10.2013 21:53

Ответ: Мегатекстуры в Блитц3Д
 
для терейна с мегатекстурой не нужно особо никаких шейдеров.
я делал так (в своёмдвижке) - делил терейн на квадтри и по геометрии и по текстуре одинаково и стримил нужные куски текстуры фоном. для террейна это более эффективно, чем general-purpose мегатекстуры.
пока текстура не застримена, показывал кусок текстуры максимального загруженного лода.
сможешь в блице загружать текстуры в отдельном потоке - может и сделаешь.

Цитата:

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

никогда бы не поверил что буду кому-то советовать блиц, но такие дела

Arton 16.10.2013 01:25

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от Mr_F_ (Сообщение 268841)
для терейна с мегатекстурой не нужно особо никаких шейдеров.
я делал так (в своёмдвижке) - делил терейн на квадтри и по геометрии и по текстуре одинаково и стримил нужные куски текстуры фоном. для террейна это более эффективно, чем general-purpose мегатекстуры.
пока текстура не застримена, показывал кусок текстуры максимального загруженного лода.
сможешь в блице загружать текстуры в отдельном потоке - может и сделаешь.


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

никогда бы не поверил что буду кому-то советовать блиц, но такие дела

Библиотека называется FastPointer (ссылка внизу), она бесплатна. Но не всё так гладко, не знаю стабильно ли будет работать программа если грузить текстуры, но вот меши например точно нельзя, очень быстро получаешь MAV (в примерах есть предупреждение).

Она может отлично подойти например для математики, библиотеки физики и т. п. в отдельном потоке. Что-то грузить нежелательно (хотя если оно не связано с блицем).

Но всё это нестабильно, хотя ладит даже с Хорсом (под Blitz3D и BlitzPlus).

ИМХО

Nerd 16.10.2013 13:53

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от Arton (Сообщение 268863)
Библиотека называется FastPointer (ссылка внизу), она бесплатна. Но не всё так гладко, не знаю стабильно ли будет работать программа если грузить текстуры, но вот меши например точно нельзя, очень быстро получаешь MAV (в примерах есть предупреждение).

Она может отлично подойти например для математики, библиотеки физики и т. п. в отдельном потоке. Что-то грузить нежелательно (хотя если оно не связано с блицем).

Но всё это нестабильно, хотя ладит даже с Хорсом (под Blitz3D и BlitzPlus).

ИМХО

В моих кривых ручонках эта штука не вылетала даже без мутексов (проворачивал асинхронную подгрузку текстур и деформацию моделей).

ABTOMAT 16.10.2013 14:03

Ответ: Мегатекстуры в Блитц3Д
 
Цитата:

Сообщение от Arton (Сообщение 268863)
меши например точно нель

Это вполне объяснимо: в Блице меш сразу же попадает в список рендера, видимо, в сам момент создания, ещё до того, как он был прогружен. Так-то оно обычно насрать, ведь блиц не асинхронен сам по себе. А когда юзаешь несколько потоков, рендер может пытаться рендерить ещё не загруженную модель и крошится (я так думаю, по крайней мере, причина в этом кроется, по крайней мере, у меня в движке так было)

Mr_F_ 16.10.2013 14:12

Ответ: Мегатекстуры в Блитц3Д
 
ещё сам по себе DX юзать из нескольких потоков может дать непредсказуемый эффект, т.к. если он в момент создания текстуры чето в какую-то память записывает, то при двойной попытке записи из разных потоков будет краш. В дх9 есть флажок MULTITHREADED, который добавляет мутексы повсюду в нём, в дх7 вроде нет, и вообще это лишний оверхед и не круто его юзать. Только с ДХ10 добавили нормальную многопоточность.
ну и сам блиц может кроме текстуры, в какую то свою общую память что-то писать.

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

в своём потоке ты только загружаешь тексы с харда в ОЗУ, не трогая блиц и ДХ.
далее в своей либе синхронно с блицем вызываешь UpdateTexture (надеюсь он есть в дх7). Ах да, для его юзанья лучше текстуры с правильными флагами создавать тоже в своей либе.
Да и загрузку тоже делай в своей либе, чтобы сразу 1 fread, а не 100500 ReadByte.

--
UpdateTexture сам может вызывать подлагивания, если каждая текстура (кусок мегатексы) слишком большая, лучше потестить с разными размерами. Можно большую тексу апдейтить по кускам ещё за несколько кадров.


Часовой пояс GMT +4, время: 03:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot