gpu – Visual Computing Lab https://viscomp.alexandra.dk Computer Graphics, Computer Vision and High Performance Computing Tue, 25 Nov 2014 14:24:51 +0000 en-GB hourly 1 https://wordpress.org/?v=5.8.2 Xcelgo case – Custom real-time rendering optimization https://viscomp.alexandra.dk/?p=3635 https://viscomp.alexandra.dk/?p=3635#respond Tue, 25 Nov 2014 14:24:51 +0000 http://viscomp.alexandra.dk/?p=3635 In this project we helped Xcelgo with a brand new custom DirectX 11 renderer as a replacement of their existing fixed function DirectX 9.0 renderer.

Xcelgo provides virtual automation software for 3D modeling along the cycle of automated material handling systems – Like airport baggage handling or larger warehouse storage systems. The purpose of their product is to eliminate the risks involved in building these large and very expensive systems, by allowing simulation and modelling of the system up front.

Experior, the 3D modelling system by Xcelgo, is built around a fixed function DirectX 9.0 pipeline programmed in C# though wrapper code. DirectX 9.0 is characterized by a lack of scalability because of the driver overhead imposed by the dated rendering paradigm. The 3D simulation is built from a large number of user generated primitives which are able to freely move around the scene. Each of these are being rendered individually which causes the GPU and CPU to lockstep.

The fixed function rendering pipeline supports only very limited lighting techniques, hence limiting the visual appeal of their presented scenes. And even in engineering type visualizations, the visual quality gets attention and opens for expanding the customer base.

Xcelgo wanted to prepare for future scenarios with larger models and a more easily maintained rendering framework – and decided to update the rendering pipeline to a modern shader-based DirectX 11 pipeline. In close collaboration we have designed and implemented a completely new rendering pipeline.

Integration

The new pipeline supports a lot of features which will help Xcelgo further push the limits of virtual automation:

* DirectX 11 rendering pipeline written from the bottom up based on Xcelgos domain knowledge about their customers wishes.
* Intelligent optimization of scene rendering to avoid expert rendering knowledge when designing the scene geometry.
* Threaded rendering freeing the rest of the workstation to do simulation.
* Massive increase in number of dynamic objects that the system can handle. Hundreds primitives -> Tens of thousands skinned and textured models.
* Support for instanced rendering of skinned robots.
* Support for fully detailed CAD line renderings in full resolution to better guide modelling engineers when building systems.
* Modern cascaded shadow mapping solution which fully envelops the scene in crisp shadows.
* Rasterization-based pixel perfect picking of objects in the scene vastly improving runtime performance when selecting objects.
* Modern surface shading much improving the visual aesthetics of the scene.

The project is now completed and Xcelgo is hard at work finishing the integration of the new rendering which should be complete in time for Experior 6.0.

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=3635 0
SSDO til LEGO Digital Designer https://viscomp.alexandra.dk/?p=490 https://viscomp.alexandra.dk/?p=490#respond Mon, 10 May 2010 20:56:01 +0000 http://viscomp.alexandra.dk/?p=490 (In Danish)

LEGO Digital Designer er et frit tilgængeligt program til at bygge LEGO-modeller i 3D på en almindelig computer. Konsulentaftalen med Alexandra Instituttet har løbet siden december 2009, og vi har i den forløbne tid implementeret en række teknikker der giver en afgørende bedre realisme i den interaktive grafiske fremstilling af LEGO-klodser.

Avancerede visuelle effekter
Det drejer sig om visuelle effekter som bløde skygger, refleksioner og farveblødning. Disse visuelle fænomener er vigtige for en god forståelse af form, materiale og dybde og hjælper derfor brugeren af programmet til en mere intuitiv byggeoplevelse.

I traditionelle formuleringer er sådanne effekter dog ikke mulige at implementere i et interaktivt produkt som LEGO Digital Designer. De er simpelthen for avancerede og derfor for langsomme at beregne og vise.

Ambient-occlusion
Den problem har vi løst ved at programmere ambient-occlusion (til bløde skygger) samt lokale farvede refleksioner som en post-processeringseffekt i screen-space – også kaldet screen space directional occlusion.
Det betyder at disse effekter beregnes på en grov tilnærmelse af den faktiske 3D-scene, nemlig pixels med dybde. Men effekten er næsten lige så god som den ”ægte” vare – og meget hurtigere.

Én af grundene til at dette kan lade sig gøre er at vi kan udnytte GPU’en til fulde, og at netop dette visuelle fænomen er lavfrekvent og derfor ikke så følsomt over for den type approksimation vi laver.

Her er samme billede med Screen Space Directional Occlusion

Her er samme billede med Screen Space Directional Occlusion

Globale refleksioner
Vi her ydermere programmeret globale refleksioner (både spejl-, glossy og diffuse refleksioner) som en voxel baseret effekt hvor vi simulerer lysets udbredelse efter at det har ramt en overflade første gang (Light Probagation Volumes).

Senest har vi set på hvordan sådanne effekter kan kombineres med højkvalitets anti-aliasing, dvs. at undgå ”hakker” i 3D-grafikken pga. en manglende opløsning på skærmen.


Interaktiv grafik-motor

På sigt ønsker vi at opbygge en interaktiv grafik-motor der kan levere lige så god kvalitet som traditionelle offline algoritmer (raytracing) der simulerer lysets generelle effekter.

Her de ekstra nuancer der er lagt oveni det oprindelige billede: bløde sort-hvide skygger og farverefleksion

Forbedringerne er ikke implementeret i den aktuelle version af LEGO Digital Designer endnu, men vil være tilgængelige i den kommende version af programmet, der forventes udsendt sidst i 2010.

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=490 0
More raytracing https://viscomp.alexandra.dk/?p=267 https://viscomp.alexandra.dk/?p=267#comments Fri, 12 Jun 2009 15:40:02 +0000 http://viscomp.alexandra.dk/?p=267 Screenshot from our Lightsky ray tracer

Screenshot from our Lightsky ray tracer

We are  playing around with our CUDA ray tracing software. The design philosophy is to create a real-time ray tracing experience that allows the user to play with the visual parameters and get an instant feedback. This is not something revolutionary but ray tracing is such a flexible rendering technique, so the basic software can be used in a lot areas. In this demo the user can change and update the material properties at runtime.

We finally found a decent model 🙂 .

Refraction and diffuse materials

Refraction and diffuse materials, rendering time 45 sec.

But we still like some good old programmers art. The above image is a rendering that uses ambient occlusion together with classic ray tracing.

No ray tracing post without Sponza!

No ray tracing post without Sponza!

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=267 1