LDD och Pov-Ray

Startat av Gideon, 08 Januari 2013 kl. 23:02

Föregående ämne - Nästa ämne

Gideon

Citat från: Anders67 skrivet 08 Januari 2013 kl. 22:52
Körde en justerad version av apotektet igenom Pov-Ray
Supersnyggt!

Vad kör du för inställningar när du renderar t ex ett sånt där? Jag slängde ihop en testmodell igår på ca 400 bitar, inkl lite transparenta bitar. Med antialiasing i 1600x1200 säger den nu ett dygn senare att den har gjort 34% :S
Sitter ändå på en rätt ny i7a...
Regionansvarig Gävle-Dala
Flickr   Instagram

Anders67

#1
Jag har inte ändrat något alls - bara upplösning 1920x1080 - sitter på en i5 proc - pharmacy renderingen tog ca 8 timmar

Lews

Citat från: Gideon skrivet 08 Januari 2013 kl. 23:02
Supersnyggt!

Vad kör du för inställningar när du renderar t ex ett sånt där? Jag slängde ihop en testmodell igår på ca 400 bitar, inkl lite transparenta bitar. Med antialiasing i 1600x1200 säger den nu ett dygn senare att den har gjort 34% :S
Sitter ändå på en rätt ny i7a...

Renderingstiden hänger inte bara på processorn. AA kan ju ställa till det lite men det borde inte ta så lång tid som det har gjort. Vad har du för RAM-minnen och grafikkort?

Gideon

Citat från: Lews skrivet 08 Januari 2013 kl. 23:12
Renderingstiden hänger inte bara på processorn. AA kan ju ställa till det lite men det borde inte ta så lång tid som det har gjort. Vad har du för RAM-minnen och grafikkort?
Jag har en i7 3770K, 16 GB 1600 MHz och ett GTX680 (vilket enligt vad jag läser dock inte används alls för raytracing).
Alla åtta virtuella kärnor har gått på max nu i snart 24 h och jag har hunnit 34%.
Körde näst högsta detaljnivån i LDD to POV-Ray Converter, dvs "original LDD geometry + visible bevels + LEGO text on studs"
Första testet jag gjorde med POV-Ray, på en annan modell med ca 500 bitar men i låg upplösning och utan AA, tog ca 10 min att rendera.
Regionansvarig Gävle-Dala
Flickr   Instagram

Anders67

#4
denna inställning har jag kört med

Lews

Citat från: Gideon skrivet 08 Januari 2013 kl. 23:28

Jag har en i7 3770K, 16 GB 1600 MHz och ett GTX680 (vilket enligt vad jag läser dock inte används alls för raytracing).
Alla åtta virtuella kärnor har gått på max nu i snart 24 h och jag har hunnit 34%.
Körde näst högsta detaljnivån i LDD to POV-Ray Converter, dvs "original LDD geometry + visible bevels + LEGO text on studs"
Första testet jag gjorde med POV-Ray, på en annan modell med ca 500 bitar men i låg upplösning och utan AA, tog ca 10 min att rendera.

Det är nog där skon klämmer. Ditt grafikkort ger inte den extra skjuts i prestanda som behövs när du lägger till AA i renderingen.
Prova att uppdatera drivrutinerna till grafikkortet för att se om man gjort någon förbättring för POV-ray där. Om inte det hjälper så får du köra utan AA för att rendera snabbare.

Gideon

#6
Citat från: Anders67 skrivet 08 Januari 2013 kl. 23:40
denna inställning har jag kört med
Exakt samma som mig, förutom att den hade satt "Output image size in pixels" till min skärms storlek, dvs 2560x1440 (WQHD).
WQHD är ju nästan dubbelt så många pixlar som Full-HD, så trots att POV-Ray bara renderar själva objektet i mitten när det är satt till 1600x1200 jobbar den kanske lika hårt med varje enskild pixel i omgivningen, även om det bara blir tomma pixlar i slutänden en bit från modellen.

Citat från: Lews skrivet 09 Januari 2013 kl. 00:27
Det är nog där skon klämmer. Ditt grafikkort ger inte den extra skjuts i prestanda som behövs när du lägger till AA i renderingen.
Prova att uppdatera drivrutinerna till grafikkortet för att se om man gjort någon förbättring för POV-ray där. Om inte det hjälper så får du köra utan AA för att rendera snabbare.
Menar bara att jag läste på nätet att POV-Ray inte använder GPU till sina beräkningar, inte att jag har sett att mitt kort inte jobbar (hur kan man på ett enkelt sätt se GPU-lasten förresten?).
Jag har senaste drivrutinerna, installerade dem igår innan jag läst det där om att raytracing görs på CPU och inte på GPU.
Ser i alla fall att programmet verkar tråda mycket bra och använder alla CPU-kärnor inkl hyperthreading fullt ut.

Jag börjar fundera på om problemet kanske är i modellen eftersom det gick mycket snabbare med mina första skott, trots likartat antal bitar. Kan det vara för att jag har med bitar med komplicerad geometri, har en del vegetation (limb elements och prickly bushes)? Är också ganska mycket transparenta bitar med andra bitar under, kanske också är jobbigt att beräkna?
Regionansvarig Gävle-Dala
Flickr   Instagram

Anders67

Jag har märkt att det tar längre tid med transparanta bitar och bitar med större konvexa/konkava ytor, alla studs är ju sånna - se de tar längre tid än "blanka" ytor

Gideon

#8
Min modell hade dessa siffror:
Part count: 294:
Unique part count: 29
Bevel count: 24364
Valid bevel count: 24364

Är bevel count ovanligt hög i förhållande till antalet bitar?

Hade som sagt rätt mycket genomskinligt (4st 8x8 plates), och bitar under det genomskinliga.

(@nån moderator: kanske skulle vara en annan tråd av detta)

Edit: Varje Plant Leaves 6 x 5 2417 blir visst 714 bevels, och varje Plant Prickly Bush 2 x 2 x 4 6064 blir 662. Lilla Plant Flower Stem 3741 blir faktiskt också hela 102, antar att det är de rundade ytorna som gör det?
Regionansvarig Gävle-Dala
Flickr   Instagram

Lews

Citat från: Gideon skrivet 09 Januari 2013 kl. 00:42
Menar bara att jag läste på nätet att POV-Ray inte använder GPU till sina beräkningar, inte att jag har sett att mitt kort inte jobbar (hur kan man på ett enkelt sätt se GPU-lasten förresten?).
Jag har senaste drivrutinerna, installerade dem igår innan jag läst det där om att raytracing görs på CPU och inte på GPU.
Ser i alla fall att programmet verkar tråda mycket bra och använder alla CPU-kärnor inkl hyperthreading fullt ut.

Ah okej, trodde POV-ray hade GPGPU support men finns inte det så är problemet något annat.
Du kan kolla belastningen i NVIDIA Control Panel eller ladda ner HWiNFO.

Roger Brickjet

Vad jag förstått beräknar POV-Ray refraktion riktigt bra, så det borde ta mycket längre tid ju fler transparenta bitar som är med.
Och refraktion + reflektion i kombination borde öka renderingstiden exponentiellt...typ :)

Gideon

Citat från: Roger Brickjet skrivet 09 Januari 2013 kl. 01:47
Vad jag förstått beräknar POV-Ray refraktion riktigt bra, så det borde ta mycket längre tid ju fler transparenta bitar som är med.
Och refraktion + reflektion i kombination borde öka renderingstiden exponentiellt...typ :)
Det var nåt sånt jag hade på känn ;)
Ska prova att rendera samma modell igen utan de transparenta bitarna när om denna blir klar :P
Regionansvarig Gävle-Dala
Flickr   Instagram

AndersI

#12
'Populärvetenskapligt' beskrivet så skjuter en raytracer (t.ex. POVRay) iväg en (anti-)ljusstråle genom varje pixel i den färdiga bilden (i princip - se belysningsmodellen nedan), beräknar strålens väg ända tills den slutar i en ljuskälla (eller svart hål) och samlar på sig färginformation från eventuella reflektioner på vägen.

Eftersom denna beräkning är oberoende av motsvarande beräkning för nästa pixel (och nästa, och nästa...), så lämpar sig raytracing extremt bra för uppdelning på alla tillgängliga CPU-kärnor (eller flera datorer - man kan t.o.m köra 'raytrace by mail' där varje dator skapar en liten ruta av bilden).

Reflektion är inte kostsamt (relativt sett), det är bara en enda extra beräkning längs ljusstrålens väg.

Transparens å andra sidan innebär i normalfallet att varje ytpassage ökar antalet ljusstrålar (en som reflekteras, en som bryts genom materialet), och om man betänker att Legobitar är ihåliga, med andra bitars studs instoppade, så kan varje ljusstråle delas upp i 8 stycken olika vid passage av en enda transparent bit. Tänk då på vad som händer när man har hela block av transparenta bitar...

Antialiasing (AA) sker i princip genom att rendera en mycket större bild, och göra downsample till önskad storlek, därför tar det mycket längre tid. I vissa sammanhang lönar det sig att inte göra AA med POVRay, utan generera en något större bild än man slutligen behöver, och låta sitt grafikprogram utföra AA.

Vad som också kostar mycket tid är belysningsmodellen, antalet ljuskällor och deras karaktär. För att få fram de mjuka, naturliga skuggorna som vi blir bortskämda med numera, utförs hundrafalt många fler beräkningar (jag har fortfarande inte riktigt förstått 'radiosity', men snyggt blir det).

OBS: Allting i denna beskrivning är förenklat, och med reservation för mina egna missuppfattningar.
Region: Nerike och lite ÖstraG (bor i Södermanland)
Mitt urgamla LEGO CAD-program: BlockCAD

o0ger

Radiosity är väl att ljuset som reflekteras från tex en röd yta gör att tex en vit yta i vinkel mot den röda ytan även får lite rött på sig.

Följ mig på Flickr eller Instagram. Jag har också en blogg. | Glöm aldrig Bortom Sol!

Gideon

Det var precis som jag trodde att det var transparensen som ställde till det. 4 st 8x8 trans-medium blue och en handfull 1x1 round plate trans-clear räckte för att mångdubbla renderingstiden. Med dem med i modellen så beräknade jag 15-16 pixlar per sekund, nu beräknar jag ca 800 pixlar per sekund när jag bara tog bort de transparenta bitarna, allt annat lika i modellen och inställningarna samma.
Tyvärr kommer den bilden jag hann lägga 1½ dygn (hälften av vad det skulle tagit totalt) på att rendera aldrig att bli klar, nåt lyckades släcka hela Västerbergslagen en kvart i förmiddags :O

Hursomhelst är det kul att hitta nåt användningsområde för den för dyra speldatorn jag aldrig tar mig tid att sitta vid längre sen jag återupptäckte legot ;)
Regionansvarig Gävle-Dala
Flickr   Instagram