dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Material Information..

 
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija
View previous topic :: View next topic  

Palasiet pirmo Postu
1
100%
 100%  [ 5 ]
2
0%
 0%  [ 0 ]
Total Votes : 5

Author Message
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Thu Feb 07, 2008 11:59 am    Post subject: Material Information..

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

В общем что бы вы выбрали:
1 - Настройка Только материалов, в редакторе.
2 - Настройка материалов для каждого объекта индивидуально.

Прошу откомментировать ваш ответ.
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Feb 07, 2008 12:56 pm    Post subject:

Es, ja godīgi, nesapratu kāds ir jautājums. Par to vai redaktorā ļaut vai neļaut objektiem piešķirt materiālus? Bet ja neļaus - tad kur tad tos piešķirt?
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Thu Feb 07, 2008 1:05 pm    Post subject:

atsevišķi materiāli ir 100% nepieciešami!
Quote:
он может быть и использован отдельно на другие объекты, + это немного производительнее, чем хранить кучу денных для каждого объекта.

pats jau atbildēji uz savu jautājumu! ;)

btw, ielādēt katram objektam savu sheideri, tas būtu nedaudz par traku, vai ne?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Thu Feb 07, 2008 1:19 pm    Post subject:

Хм, ну во втором варрианте предпологается такой метод, где шейдер пренадлежит материалу, но вот настройки (переменные), принадлежат объекту.
Да вообще пока писал и время шло, анализировал. Решил делать по 1 варрианту, конечно один минус в том, что если объекту кто-либо захочет поменять одну свою настройку придётся, создавать новый шейдер, хотя можно и попробовать сделать уникальные настройки.
В общем спасибо! :)

Чёт я чуток ступил, заработался наверное..


bubu, вопрос состоял в том, как организовать материалы, и кто будет владелец настройки шейдеров (переменных), Объект или Материал. Smile
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Thu Feb 07, 2008 2:00 pm    Post subject:

hmm..
vēlreiz pārdomājot, nesaprotu dažas lietas..

1. kāpēc vajadzīgas materiālu konfigurācijas? vai tad būs spēlē kautkādas 10 pasaules, katrā objektiem citādākas krāsas?

2. vai nevar izdarīt tā, ka visi defaultie settingi stāv materiālā, bet tos var ignorēt, ja objektam ir savi settingi?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Thu Feb 07, 2008 2:21 pm    Post subject:

snake5, ну к примеру, материал металла, или материал стекла.
К примеру материал металла, содержит шейдер (даже 3, под разные потдерживаемые выдеокартой), и имеет настройки - это посылаемые значения для переменных, то цвет FallOff'а, или цвет тени, и т.п.
Если объект будет иметь свои настройки, тогда придётся хранить все возможные переменные для объекта, учитывая что переменная - это отдельный эллемент, и он привязан к материалу, получается придётся для каждой уникальной настройки, заводить по эллементу и присваивать его к моделе. Меня пугает если объёмы подобного, будут Очень велики, т.к. объектов с уникальной настройкой, можно ведь надублировать..
Десятки Тысяч эллементов, ух...

Это не будет игра с разными мирами, просто ведь нельзя же кинуть бамп со спекуляром одной интенсивности и фаллоффом одной, на разного типа объекты, к примеру металлическое ведро и старая труба, у них полюбому будут разные настройки, для достижения разных результатов.
Если это преподнести что на каждый объект настраивать - геморно.
А если таким образом: пишу шейдеры, и даю художникам они настривают на свой художественный глаз, материалы, типо: ржавый металл, фанера, ламинат, ткань, грубая древесина, и т.п.

Имхо варриант с материалами, без уникальных настроек лучше, просто знакомый пытается убедить в обратном..
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Thu Feb 07, 2008 3:21 pm    Post subject:

nu nesaprotu, kāpēc vajadzētu glabāt falloff (kas, manuprāt, bija gaismu parametrs) un ēnas krāsu, utml...
tas bump stiprums vispār regulējas ar tekstūrām, nevis settingiem..
bet specular - gan ar tekstūrām, gan ar settingiem..

piemēram, tam pašam metāliskajam spainim un vecajai caurulei var būt vienādi šeideri, bet, lai viņi izskatītos savādāk, jālieto būtu diffuse map, bump map un specular map arī (ja negribi likt vēl klāt specular map supportu, vnk lieto bumpmapes alpha channel)!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Thu Feb 07, 2008 3:25 pm    Post subject:

snake5 wrote:
btw, ielādēt katram objektam savu sheideri, tas būtu nedaudz par traku, vai ne?


Kāpēc jūs abi uzskatat, ka materiāls = šeiders?
Materiāls jau var būt dažāds, bet renderēšana viena un tā pati. Piemēram tam tavam piemēram ar metāla materiālu trubai vai spainim. Lai arī tie izskatās drusku dažādāk (atšķirība uniform konstantēs, tekstūrās, ...), taču tie var tikt renderēti ar vienu un to pašu metāla šeideri.

Imho tu jauc kopā renderēšanas implementāciju (šeiderus) ar loģisko strukūru (materiālus).
Back to top
View user's profile Send e-mail
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Thu Feb 07, 2008 3:52 pm    Post subject:

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

Шейдер - это тоже отдельный эллемент. А материал содаржит только линку на него, и динамично грузит параметры из файла шейдера, какие могут быть посладны в шейдер. И ещё есть отдельный файл, который содержит переменные этих параметров.

Шейдеров (загруженных), будет намного меньше чем материалов.

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

Хм, получается пришёл к такому выводу:
Грузим шейдеры, и имеем в наличии модели, затем создаём материал, указываем какой шейдер использовать (при загрузки, анализируются все возможные переменные static и нормальные, и сохраняются, для использования в материале). Таким образом будет большая динамика и удобство, при этом материал - будет только инфой и линками.
Хм, думаю всё прально?
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Thu Feb 07, 2008 3:59 pm    Post subject:

bubu wrote:
taču tie var tikt renderēti ar vienu un to pašu metāla šeideri.

Un ko es saku?
snake5 wrote:

tam pašam metāliskajam spainim un vecajai caurulei var būt vienādi šeideri


bet par to jaukšanu..
laikam būšu nedaudz sajaucis..

bet man šķiet, ka būtu jāpaskatās, kā to dara citas spēles.. HL2 variants te diez vai derēs..
var jau veidot katram objektam savu materiālu, bet tad vajag normālu resursu sistēmu, kura pados identiskā resursa id/pointeri, ja tāds būs jau ielādēts..

pirms galīgā lēmuma ir jāzina viena lieta - spēlei kartes būs blokveida - tā kā no vienāda izmēra objektiem saliktas (piemēram - Re-Volt spēles kartes veidotās ar editoru) vai arī kartes būs ģeometriskas - sastāvēs no mesh'iem, kuri var būt gandrīz jebkādos izmēros un viņiem nav īpašu ierobežojumu?
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Thu Feb 07, 2008 4:15 pm    Post subject:

Угу, именно вот поэтому и интересуюсь, редактор планирую делать блоко-образный, как к примеру Oblivion или Crysis, а впервые увидил систему в Morrovind (TES3), в общем по функционалу конечно на такое не замахиваюсь, всё будет простым, только вот то что основанно на объектах, то поэтому и задался вопросом материалов. При этом учитывая что модель, состоящая из детей, может содержать несколько материалов (к скамейка - металлические опоры и ножки и боковые держатели спинки, а основа из досок), такой объект состоит из 2 детей, и на каждый идёт своя диффуз, нормал и спекуляр карта (этот объект не статика, поэтому дисплейс для паралакса не нужен) + возможно амбиент оклужион карта.
Текстуры содержатся на детях (Child), и на них кладётся материал (содержащий ссыль на шейдер, и параметры переменных шейдера).

Хм, таким образом получается, необходимы 2 редактора, 1 - для объектов и настройки их визуального вида, и второй для ссоздания уровня.
Чтож, имхо получается удобно?
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Thu Feb 07, 2008 10:17 pm    Post subject:

njā, ja jau tiek lietoti blokveida objekti, tad, šķiet, ka pat īsti nav svarīgi, vai materiāli izdalās atsevišķi, vai ietilpst objektos..

labi padomājot (cik tagad to spēju izdarīt), šķiet, ka savi materiāli katram objektam būtu labāk.. bet tikai tad, ja spēle atpazīs tādus pašus materiālus un otrreiz tos neielādēs Wink
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Fri Feb 08, 2008 10:06 am    Post subject:

Дело в том что, материал может имент отличимую одну переменную от друго-го, и он уже считается как бы другой. Хм, в общем начал писать уже, сделал систему на такой основе: Грузишь шейдер (аналализируется файл шейдера на переменны), на все доступные для передачи переменные, создаются эллементы, и привязываются к локальному скиску эллемента шейдера. Далее, есть возможность создать материал, создавая его, указывается линка на шейдер, и копируются все эллементы переменных с его списка, в список материала, и далее настраиваем те переменные, таким образом, можно хранить в файлах, только переменные, и файл шейдера (если уже эллемент шейдера с таким файлом, уже был загружен, то при попытки грузить новый, просто выдаётся хэндл этого загруженного), таким образом выходит имхо, весьма удобно.
Отказался напроч от первого варрианта, он не столь удобен, и представьте у нас будет около 40 объектов в радиусе 15 метров, все они будут иметь свои настройки, а у меня стандартный шейдер имеет около 25 переменных (и не одномерных типов), имхо это было бы неоправданное забивание ОЗУ.

В общем ещё раз всем спасибо, уже определился Smile
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Fri Feb 08, 2008 4:13 pm    Post subject:

<offtopic>Sorry, bet tagad topikos rodas daudz nesaprašanās dēļ tā, ka cilvēki vainu nevar izlasīt krieviski runājošo cilvēku (piemēram, MoKa) rakstīto, vai arī to līdz galam nesaprot. Piemēram es jau esmu pamanījies izlaist krievu tekstus (krieviski saprotu labi, bet lasīšana neiet tik ātri, un nav tik daudz laika). Un galu galā foruma virsrakstā jau ir teikts: Latvian Game Developers Community. Varbūt izdevīgāk būt tērēt vairāk laika un rakstniekam rakstīt latviski, nekā mums visiem pēc tam tērēt vairāk laika tos lasot (vai vienkārši tos nelasīt)?

P.S. Apzināti neieliku </offtopic>, jo noteikti te sāksies offtopiks, kas būsu jāliek atsevišķā topikā.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
MoKa



Joined: 10 Oct 2007
Posts: 79
Location: Daugavpils

PostPosted: Fri Feb 08, 2008 4:31 pm    Post subject:

<offtopic>Es pameginasu. Es nepratu pavisam runat latviski, jo es pameginaju pateic visu ko es patektu sadam postiem, tad es не смог бы. Un tagad nevaru, tapec ka dzivoju Daugavpili, un tas ir ne mana vaina ka mums ir nevairak latviesu skolas. Kad man biji 7 es не выбирал skolu.
Piedod atkal, bet man ir ari loti сложно lasit latviesu valodu, bet es meginaju un чучуть macos.
Man ir ne vienalgi par gamedev Latvijaa, u tapec es kautka meginaju "tuseet" seit, un seit ir ne глупые программисты, un es to cenoju, bet atkal piredod, ko man tad darit?
Ah, es rakstiju sito message, 4x daudzak laiku neka pa krieviski Sad ne tapec ka раскладка latviesu (cyrilic un latinic es печатаю, одинаковой atruma), bet man ir Loti gruti patulkot un runat vienu mommenti :)


У всех время мало, и я ценю чужое и своё время.</offtop>
_________________
Текущий Инструментарий: BlitzMax + Xors3D + FastImage + PhysX + sFXe
Back to top
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Grafikas programmēšana un teorija All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group