Spike's objecten en BVL

104 posts
Re: Spike's objecten en BVL
« Reply #240 on: Monday 12 February, 2018, 16:41:18 »
Ik zei ook, ik kan wel lezen maar dat wil niet zeggen dat ik ook alles zo maar zal geloven ;)

Ik ben momenteel even een test aan het opzetten.

100 x 100 planes met een totaal afmeting van 22 x 22 meter
Aantal poly's 20.000

Na exporteren en bekijken in de BPE viewer blijkt dat er inderdaad netjes een enkelzijdig vlak wordt weergegeven en met het vinkje aan, wordt het dubbelzijdig.  De beide geexporteerde bestanden blijken even groot te zijn. (zie afbeelding)

Ik ga nu proberen om in RW te kijken wat het geheugen gebruik van beide objecten zal zijn.



Je bent me voor Frison!....ik zou zeggen ga door!! ;D
Ik ben ik ook zeer benieuwd wat het resultaat is....

1.918 posts
Re: Spike's objecten en BVL
« Reply #241 on: Monday 12 February, 2018, 16:47:13 »
Als ik de Taskmanager mag geloven, geeft het de volgende cijfers:

Opstart van RW in de editor, gebruik staat op 1358 Mb

Plaatsen van de enkelzijdige planes verhoogt dat tot 1367 Mb en is echt enkelzijdig met schaduw.

Verwijderen en plaatsen van de dubbelzijdige planes geeft een geheugengebruik van 1373 Mb aan, is echt dubbelzijdig met schaduw.

Ergo, het laden van de enkelzijdige planes geeft een gebruik van 9 Mb aan en de dubbelzijdige zou op 15 Mb uitkomen.

Er is dus duidelijk sprake van meer geheugen gebruik en zoals ik al eerder zei, de waardes van de Taskmanager fluctureren nogal eens,  mag ik daarom stellen dat ik aan neem dat het geheugen gebruik verdubbeld?

Waarom het ik zoveel poly's gebruikt? Omdat het dan wat duidelijker naar voren zal komen wat het geheugengebruik betreft.

"Gelukkig heb ik er geen verstand van en dat wil ik graag zo houden"
 
Ja en "de beste stuurlui staan aan wal". Kan je iets beter? Doe het dan zelf.

5.012 posts
Re: Spike's objecten en BVL
« Reply #242 on: Monday 12 February, 2018, 23:57:29 »
Qua geheugen gebruik voor 1 object meten is erg lastig. Zoals je zelf aamgeeft.
Kun je niet nauwkeuriger meten met de previes functie van de blueprint editor? Dan ben je in elk geval 100% zeker dat de omgeving van wat geladen wordt het zelfde is.
Verschil in fps is misschien nog makkelijkert te meten. Maar dan moet je waarschijnlijk de mesh nog veel meer poly's geven om duidelijk de effecten te zien.

Enigste onzekere is de belichting.. het object geeft schaduw op de grond als verwacht. Het gaat echter om de achterzijde,  de dubbele face zelf, is die aan de achterkant ook belicht alsof doe in volle zon staat?

1.918 posts
Re: Spike's objecten en BVL
« Reply #243 on: Tuesday 13 February, 2018, 10:20:43 »
Ik zal als ik tijd heb nog even kijken naar de belichting en schaduw werking van deze optie. Ik heb daar even niet zo veel aandacht aan besteed. Of het geheugen gebruik beter te meten is in de BPE viewer? Geen idee. Ook dat zal ik even nader proberen.

1.918 posts
Re: Spike's objecten en BVL
« Reply #244 on: Tuesday 13 February, 2018, 16:55:09 »
Vervolg van de test ;)

Openen in de viewer van de BPE geeft de volgende resultaten:

Enkelzijdig:  41,4 Mb
Dubbelzijdig: 44,1 Mb

Of we daar iets mee kunnen?  Het geeft aan dat er meer poly's zijn maar het aantal Mb's blijft laag door de lage view resolutie denk ik.

----------------------------------------------------------------------------------------------------------------------------------

Volgende test, in de Worldeditor een nieuwe route aangemaakt, met niets er in dus.

Geheugengebruik op dat moment:  739,3 Mb

inclusief een enkelzijdig object:   747,8 Mb

inclusief een dubbelzijdig object:   760,2 Mb

Duidelijk zal zijn, dat er echt een dubbel aantal poly's aangemaakt zal worden, toch?

--------------------------------------------------------------------------------------------------------------

Wat doet het met de kleuren en schaduw in het spel?

Afbeelding 1 is een enkelzijdig object, zoals we dat allemaal kennen. Vanaf 1 kant zichtbaar met schaduw.

Afbeelding 2 is een dubbelzijdig object met de Briage exporter als dubbel aangemaakt. Van 2 kanten te bekijken, met schaduw en ook bij draaien blijft dat zo.

Afbeelding 3 is een dubbelzijdig object met de Briage exporter als dubbel aangemaakt en 180 graden gedraaid. Alles blijft als boven, maar de kleuren veranderen

Afbeelding 4 zijn beide objecten naast elkaar vanuit 2 kanten gezien.

Ergo:

Bruikbare optie, maar geeft dus net als bij 2 losse planes tegen elkaar, hetzelfde effect. Daarnaast krijg je kleurveranderingen door invloed van het geprojecteerde licht.  Het is maar net wat eenvoudiger en mooier is.

@Dirk, sorry voor het vervuilen van je topic, maar als je wil kan een mod er misschien wat van splitsen ;)

« Last Edit: Tuesday 13 February, 2018, 17:09:35 by Frison »

104 posts
Re: Spike's objecten en BVL
« Reply #245 on: Tuesday 13 February, 2018, 22:43:42 »
Geen probleem Frison het lijkt me wel duidelijk.... Thanks voor het meedenken ;)

ik ben zelf ook ff bezig geweest (weliswaar op de achtergrond) ::). waar het mij omgaat is dat de stalen constructie van de hoogspanningsmasten voor een gedeelte te zien zijn cq NIET te zien zijn.... :-\.
Een aantal weken terug vroeg ik jou of daar een oplossing voor te vinden was....
Een andere shader nl: 'BlendATexDiff'.  Idd zag je de gehele staal constructie van de masten, echter bij de nachtelijke uren 'lichten' de masten op, alsof ze licht gaven in de nacht :o zie beide screens...

Gaandeweg ontwikkelde zich hier een ehh....nou ja discussie over het hoe en wat.....maakt niet uit
Ik heb er iig wat aangehad, want met de 'Briage' methode is het bovengenoemde methode enigzins verholpen
met de shader: 'TrainBasicObjectDiffuse.fx'...vraag me niet wat de shader doet want daar heb ik geen verstand van.... ;D
Wat ik wel weet is dat het tot dusver werkt en dat is wat voor nu wilde bereiken. Zie 3e en 4e screen.

Enfin,  het geheugen  tja.... de Masten (staalconstructie) heb ik zoveel mogelijk gemaakt als 1 plane (faces) 
Dus de mast en dwarsliggers zoveel mogelijk als planes opgebouwd. Alleen die hebben de shader TBODiffuse gebruikt.
Hoeveel geheugen  dat ge-en/of verbruikt, weet ik (nog) niet.

Gegroet allen,
Dirk
« Last Edit: Tuesday 13 February, 2018, 22:45:54 by Spikevi »

1.918 posts
Re: Spike's objecten en BVL
« Reply #246 on: Tuesday 13 February, 2018, 23:01:03 »
Dat ziet er goed uit zo.  8)

Ik begrijp dat jij dus enkelzijdige planes gebruikt hebt die met de shader TBOdiff ook dubbelzijdig worden weergegeven zonder in het donker licht te geven?

104 posts
Re: Spike's objecten en BVL
« Reply #247 on: Wednesday 14 February, 2018, 09:03:14 »
Dat ziet er goed uit zo.  8)

Ik begrijp dat jij dus enkelzijdige planes gebruikt hebt die met de shader TBOdiff ook dubbelzijdig worden weergegeven zonder in het donker licht te geven?
Nou ja, het is eigenlijk de strekking van het hele verhaal :P
Dus geen [Shift_D]....(duplicate) ;)
Daar waar nodig (in mijn geval de hoogspanningsmasten) planes dubbelzijdig met shader TrainBasicObjectDiffuse
en voor de rest enkelzijdig om geheugen te besparen, maar ja dat is bij iedereen wel bekend..... ::)

Gegroet!
Dirk

5.012 posts
Re: Spike's objecten en BVL
« Reply #248 on: Wednesday 14 February, 2018, 13:19:56 »
Die hoogspannigns masten worden steeds beter, erg mooi! De belichting problemen zal bij dat soort objecten niet erg opvallen.
Kwam nog wat interessants ergens tegen voor een oplossing met isolatoren. een Plane met de optie UprightViewFacing. Al zal dat bij lang niet elk type mast/isolator toe te passen zijn. Ze moeten dan wel rechtop staan, is meer iets voor palen langs de weg waar die isolatoren recht op of naar beneden staan.
Een andere shader nl: 'BlendATexDiff'.  Idd zag je de gehele staal constructie van de masten, echter bij de nachtelijke uren 'lichten' de masten op, alsof ze licht gaven in de nacht :o zie beide screens...
Even uit mijn hoofd is dat de eigenschap van de Tex, TexDiff en BlendATexDiff, die worden niet/anders worden beïnvloed door de belichting van het spel dan de fx shaders. Daardoor lijkt het dus 's nachts op te lichten. Voordeel van niet fx shaders in dit geval is wel dat deze standaard dubbelzijdig zijn. (daar is het backface cull vinkje voor).
Volgens mij moet je hier dan de TexDiff shader gebruiken ipv BlendATexdiff. En dan moet er een vinkje staan bij transparency. (je alpha is immers zwart/wit bij dit object zonder grijsschaal erin)
Of het gebruik van wel en niet fx shaders nog verschil maakt in performance weet ik niet zeker, de devdocs doen mij vermoeden van wel. Daar staat namelijk dat fx shaders meerdere texture passes gebruken voor meer effecten. Het ligt natuurlijk geheel aan het object of dit nodig is.

Over alle shaders en wat ze doen, achterin de manual van Briage zag ik een heel aantal gebruik voorbeelden voor vrijwel alle shaders staan.

Volgende test, in de Worldeditor een nieuwe route aangemaakt, met niets er in dus.
Geheugengebruik op dat moment:  739,3 Mb
inclusief een enkelzijdig object:   747,8 Mb
inclusief een dubbelzijdig object:   760,2 Mb
Duidelijk zal zijn, dat er echt een dubbel aantal poly's aangemaakt zal worden, toch?
Ten eerste heel erg bedankt voor het testen frison.
Ik vraag me af of je de link tussen meer geheugen = meer poly's zonder meer kan trekken. Het 3d model blijft tenslotte het zelfde, shaders hebben invloed op hoe de game engine het 3dmodel met textures rendert niet op het 3d model zelf. Je meldde zelf al eerder dat de 3d bestanden even groot zijn.
Het is (helaas) gewoonweg nagenoeg onmogelijk het geheugen correct te meten met de taksmanager, je weet niet wat RW nog meer doet op de achtergrond.

Ik wilde zelf nog even de FPS testen, dus een plane met 80000 poly's gemaakt en getest. En daarbij de rest ook gelijk maar genoteerd.
Kwam op volgende:
Enkelzijdig: 8000poly, 540-570FPS, 542-550mb, igs: 16,7mb, GeoPcDx: 1,4mb
de bijhoordende .cost file: LOD Level="0" Vertices="82966" Triangles="80000" Strips="1051" Ratio="1.037075" Cost_lit="1860835" Cost_prelit="940282"

Dubbelzijdig: 8000poly, 560-590FPS, 544-551mb, igs: 16,7mb, GeoPcDx: 1,4mb
de bijhoordende .cost file LOD Level="0" Vertices="82966" Triangles="80000" Strips="1051" Ratio="1.037075" Cost_lit="1860835" Cost_prelit="940282"

Kopie (3d dubbel): 16000poly, kreeg ik niet meer door de BPE, de .igs was al 2x zo groot (33,3mb). uit de text van frison en met wat commonsense kun je wel zeggen dat deze veel slechter gaat presteren.

Ik vindt eigenlijk geen noemenswaardig geheugen verschil, tussen standaard of met het vinkje om conclusies te trekken. Een dubbele kopie is natuurlijk zoals verwacht zwaarder. Het kleine FPS verschil kan ik niet echt verklaren, was er telkens weer...
Bij dubbelzijdig dmv de shader met vinkje gaat inderdaad de belichting raar doen. Goed zichtbaar door de zon op de achterzijde te laten schijnen dan blijft deze als zijnde in de schaduw, dit komt omdat de achterzijde wordt belicht aan de hand van hoe de voorzijde belicht is.  Aan de cost file is te zien dat beide na export naar geopcdx 8000 poly's hebben en dat de cost gelijk zijn, wat logisch is als de 3d modellen gelijk zijn. Vooral met dit laatste is mijn conclusie dat er GEEN dubbele poly's gemaakt worden.

Ik denk dat je het als volgt moet zien, dan zit je altijd "veilig". Gewoon normaal als je geen achterkant nodig hebt. "two sided" vinkje als je er wel eentje wilt en de belichting fouten niet opvallend/storend zijn. En volledig in 3d dubbelzijdig als dat het nodig is om het mooi te krijgen.
« Last Edit: Wednesday 14 February, 2018, 13:23:51 by jor[D]1 »

1.918 posts
Re: Spike's objecten en BVL
« Reply #249 on: Wednesday 14 February, 2018, 13:35:59 »
.....
Ik vraag me af of je de link tussen meer geheugen = meer poly's zonder meer kan trekken. Het 3d model blijft tenslotte het zelfde, shaders hebben invloed op hoe de game engine het 3dmodel met textures rendert niet op het 3d model zelf. Je meldde zelf al eerder dat de 3d bestanden even groot zijn.
......

Kortom, volgens jou maakt het dus niet uit hoeveel poly's een object heeft qua geheugengebruik? :o

Waarom doen we dan steeds zo moeilijk om dat aantal maar zo laag mogelijk te houden en waarom geeft de Dev. handleiding een max aan voor gebruikte objecten en waarom kan je die dan beter splitsen in kleine objecten i.p.v. in 1 geheel?

5.012 posts
Re: Spike's objecten en BVL
« Reply #250 on: Wednesday 14 February, 2018, 14:33:51 »
Ik zeg in geval van die optie met vinkje 2 sided maakt het niet uit. Ik krijg dan in beide gevallen 8000 poly's. Als je cloned en de normals omdraait, ja dan verdubbelen de poly's en gaat de prestatie achteruit. (en de geopcdx wordt iets groter, dus ook geheugen gebruik)
Waarom je zo min mogelijk poly's wil is overigens niet voor het geheugen. De hoofdreden is vooral om de frames per second acceptabel te houden. Met goede/slimme texture's kun je veel meer en makkelijker geheugen sparen. Dat was de reden dat ik de FPS wou meten. Als de 2 sided optie de poly's echt verdubbeld zou je dat in de FPS terug moeten zien.

Om geometrieën in TS te vergelijken zijn die .cost files. Uit de dev docs blijkt dat niet alleen de poly count is bepalend, ook de triangle stripping, smoothing, vertices etc. De .cost files hangen een getal aan de prestatie van de geometrie van het model waarbij deze factoren allemaal mee genomen worden, zodat je objecten kan vergelijken. Vandaar dat ik de regel uit die files mee gekopieerd had in de vorige post. Dan zie je dat de geometrie met 2 sided het zelfde presteert als zonder. Wat logisch is want de geometrie is het zelfde alleen de shader is anders geconfigureerd.
Het splitsen heb ik even niet helemaal voor de geest hoe dat in de dev docs staat, maar dat had te doen met intances als ik me goed herinner, maar hier gaat het niet over.
In principe zou het geheugen wat een object gebruikt niet echt meer moeten zijn dan de grootte van de GeoPcDx, de TgPcDx en het .bin bestand samen. Veel meer valt er niet te laden voor TS. Heeft de shader nog een envmap, texture die TS intern genereert zal die ook nog wat geheugen gebruiken vermoed ik. Alles hangt ook weer af hoe TS het intern verwerkt, wat we nooit kunnen weten.

Ik denk ook niet dat het nodig is dit topic met andere dingen te vullen, het ging om het 2-sided vinkje en wat we daarmee getest en ontdekt hebben. Er blijkt geen aantoonbaar prestatie verschil met/zonder dit vinkje. Wel is aangetoond dat de 2 sided optie beter is dan het object klonen en de poly's in de blender/3ds/etc. verdubbelen.
« Last Edit: Wednesday 14 February, 2018, 14:38:04 by jor[D]1 »

104 posts
Re: Spike's objecten en BVL
« Reply #251 on: Wednesday 14 February, 2018, 21:29:29 »
Oke, mooie uitleg hierboven..... ;).
ik denk ( eehh met mijn zeer bescheiden kennis) dat het geheugen gebruik toeneemt wanneer er dubbelzijdig wordt bekleed met textures... ::)

Ergo, met het 'gepiel' met de shaders moest ik ook nog ff uitzoeken hoe ik de 'nodes' weer aan de praat kon krijgen, zodat de draden er ook weer aan gehangen konden worden....maar dat terzijde en dat is inmiddels opgelost.

Dus, ik ga de masten voorzien van de juiste shaders en een handleiding maken en tzt releasen....
Goed plan lijkt me.... 8)

Gegroet allen,
Dirk