Realistic Rendering – Visual Computing Lab https://viscomp.alexandra.dk Computer Graphics, Computer Vision and High Performance Computing Thu, 13 Feb 2014 10:04:56 +0000 en-GB hourly 1 https://wordpress.org/?v=5.8.2 Procedural Cellular Modeling https://viscomp.alexandra.dk/?p=2094 https://viscomp.alexandra.dk/?p=2094#respond Thu, 13 Feb 2014 10:04:56 +0000 http://viscomp.alexandra.dk/?p=2088 Inspired by the Elementacular project, we’ve been working with the animation and illustration company Mediafarm to develop a similar procedural method for designing cellular and organic surfaces. The method uses hardware tessellation to displace an input surface in the normal direction. The displacement is specified using displacement curves combined with a number of “cell types” which define a certain look. Here’s a before-and-after shot of our cellular material:

Here’s another couple of examples, which show that we can apply our material to various shapes and are able to discard part of the output geometry based on a displacement threshold:

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=2094 0
MineWizard https://viscomp.alexandra.dk/?p=2058 https://viscomp.alexandra.dk/?p=2058#respond Fri, 20 Dec 2013 09:33:51 +0000 http://viscomp.alexandra.dk/?p=2058 Tired of playing Battlefield, and have a nice GPU with a lot of idle clock cycles. Why don’t you try the MineWizard?

A glsl based ray-tracer that allow you to conjure beautiful images of you Minecraft worlds.

“But why was this created ?”  There is not a reason for everything in this world and it still remains a mystery why. But clearly someone has too much spare time..

To proceed please roll a dice 6 to test your luck!

If you are lucky and got a 6! go here.

Else bad luck go here.

Or if you find these kind of things anoying go here.

And by the way merry christmas to you all 🙂

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=2058 0
Elementacular Beta start! https://viscomp.alexandra.dk/?p=1995 https://viscomp.alexandra.dk/?p=1995#respond Tue, 10 Dec 2013 09:39:11 +0000 http://viscomp.alexandra.dk/?p=1995 We would like to invite you to participate in Elementacular beta test. We will start sending out beta mails to the people who have already signed up on our project webpage http://www.elementacular.com by ultimo tomorrow wednesday.

We hope that you will enjoy working with procedurally generated effects as much as we do!

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1995 0
Elementacular videos and Beta application opened https://viscomp.alexandra.dk/?p=1925 https://viscomp.alexandra.dk/?p=1925#respond Wed, 27 Nov 2013 09:02:37 +0000 http://viscomp.alexandra.dk/?p=1925 We have just released some videos showcasing our upcoming plugin for Autodesk Maya. Working with a visual effects and professional film maker does have its privileges.

Come take a look at how the tool is used at our vimeo channel at http://vimeo.com/channels/elementacular

Interested in trying it out? – apply for the beta starting soon at http://www.elementacular.com

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1925 0
Procedural Rock Modeling – Updated https://viscomp.alexandra.dk/?p=1908 https://viscomp.alexandra.dk/?p=1908#respond Tue, 10 Sep 2013 13:31:15 +0000 http://viscomp.alexandra.dk/?p=1908 Per request we made a video showcasing the workflow when working with the procedural rock modeling tool.

Furthermore, we have updated to tool to support much more varied looks as shown in the rock material collage below

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1908 0
Procedural Rock Modeling https://viscomp.alexandra.dk/?p=1893 https://viscomp.alexandra.dk/?p=1893#respond Mon, 09 Sep 2013 07:53:11 +0000 http://viscomp.alexandra.dk/?p=1893 Modeling boulders and other detailed rock formations can be a challenging and time-consuming task for 3D artists. Funded by the Innovationsnetværket VISUEL VÆKST we have built a plugin for Maya which enables 3D artists to quickly and painlessly generate artist-controllable rocks from arbitrary 3D input models. We achieve this by leveraging the base technologies built in the Elements – Environmental Visual Effects through Result-oriented Design project. Like the Elements project, the artists have full control while modeling and all changes to the geometry are reflected in real-time in the Maya Viewport 2.0. However, unlike the Elements project we are able to store the procedurally generated geometry to disk for later use.

If you want to participate by testing the plugin please contact jesper.borlum@alexandra.dk.

The image above shows the final results.

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1893 0
Elements – Current Results https://viscomp.alexandra.dk/?p=1784 https://viscomp.alexandra.dk/?p=1784#respond Mon, 24 Jun 2013 11:35:19 +0000 http://viscomp.alexandra.dk/?p=1784 We’ve been working on the Elements project for a few months now and we wanted to share the current status of our work. On the initial workshop, it was decided to focus on tools for creating, modeling and rendering clouds in real-time. The tools should support both quick-and-dirty workflows for backdrops as well as be able to handle flying through clouds for more dynamic shots.

The participants of the workshop wanted to be able to model using traditional geometry, so we have created a plug-in for Maya which allows you to create a cloud from any input mesh. As an initial step in this plug-in, the geometry is voxelized in a desired resolution in real-time. The following videos demonstrate this voxelization:

In the following steps of creating a cloud, we compute a distance field from the surface of the input geometry and combine it with a noise field to compute a detailed and visually interesting cloud density. You can see the result of our real-time ray marching of the final cloud representation in the following images and video:

In the near future, we will start looking at improving the performance of the ray marching, and we will support more complex lighting. Also, we plan to support user-defined noise functions that depend on the cloud geometry to be able to support different kinds of clouds. Finally, we would like to explore incorporating vertex-defined attributes such per vertex colors, noise, etc. into the cloud generation.

The video below demonstrates how to work with the plug-in. If you would like to try out the plug-in, please contact us at jesper.borlum@alexandra.dk

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1784 0
WebGL raytracing presented at Visionday https://viscomp.alexandra.dk/?p=1748 https://viscomp.alexandra.dk/?p=1748#respond Mon, 10 Jun 2013 08:37:50 +0000 http://viscomp.alexandra.dk/?p=1748 We presented our WebGL raytracer at the Visionday 2013 event.

Material presented in the talk:
Slides (pdf)
Demo 1: Motorcycle
Demo 2: Cornell box Xmas theme

Usage
Use the left mouse button and the keys “wasdqe” to control the camera.
Use the right mouse button to select objects in the scene. The active object can be translated with the gizmo and the material can be changed in the column on the right hand side.

Requirements
You should ensure that you have a web browser that supports WebGL with the OES_texture_float extension.
If you use Windows you will need a recent version Firefox (v17 has been tested) or Chrome (v23 has been tested) due to some optimizations in the shader compiler in the Angle layer. Alternatively you have to enable native opengl in your browser (in Firefox open about:config and set webgl.prefer-native-gl=true, in Chrome use the command line argument –use-gl=desktop).

 

You can also load your own 3d models. This feature was used for our Xmas competition which was won by this nice image created by Jonas Raagaard.

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1748 0
Elements – Workshop on result-oriented design https://viscomp.alexandra.dk/?p=1709 https://viscomp.alexandra.dk/?p=1709#respond Wed, 06 Mar 2013 10:13:42 +0000 http://viscomp.alexandra.dk/?p=1709 The shareplay foundation has granted 500.000 DKK to the project “Elements – Environmental visual effects through result-oriented design“. The project will try to tackle some of the challenges faced by the danish creative industry by making them more competetive. The project group consists of Sunday Studio – an Aarhus-based visual effects company – The Alexandra Institutte and the game company Javira.

We would like to invite you to participate in our first open workshop with the purpose of qualifying the project direction and to anchor the project in more Danish companies.

The workshop is on the 13th march 2013 at 1PM – 4PM at the Alexandra Institutte in meeting room Ada-333.
Sign up: http://www.doodle.com/7hqft2934eqswdn3

The main focus of the project is to build a software platform on which new techniques are able to facilitate quality improvements and faster production in the danish creative industry. By using result-oriented 3D-software we enable the artists to work directly on the final visual result and by doing so we allow the artists to be more creative.
We are going to give an introduction to what it could mean to be working using result-oriented 3D-software. Afterwards we would like the participating companies to join in – and tell us about the challenges you see in 3D software today.
We hope you will participate in our workshop and by doing so help us target the challenges faced by your company.

More information about the project can be seen here:

Artikel på Alexandra.dk: Aarhusianere vil udvikle smarte skyer og flammer til film

Artikel i Jyllands-Posten: Penge, der går op i røg

 

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1709 0
GLSL and WebGL pathtracing benchmark https://viscomp.alexandra.dk/?p=1616 https://viscomp.alexandra.dk/?p=1616#respond Fri, 21 Dec 2012 14:27:27 +0000 http://viscomp.alexandra.dk/?p=1616 We recently published a pathtracer that runs in JavaScript and WebGL (link). The WebGL pathtracer is inspired by a pathtracer that we previously implemented in C++ with OpenGL shaders written in the OpenGL Shading Language (GLSL) 3.3. However, since WebGL 1.0 uses a simpler version of GLSL, namely the OpenGL ES shading language 1.0, we encountered some language constructs that were not supported. This post describes some of the challenges we encountered in order to implement our pathtracer in WebGL. Finally, we benchmark how our WebGL pathtracer performs compared to the OpenGL version.

We use a standard pathtracing algorithm with a binary bounding volume hierarchy (BVH) acceleration structure. We store one triangle in each leaf node of the BVH tree. Probably the most common and efficient way to do ray-triangle intersection tests with the BVH tree is to maintain a stack of pointers to nodes that need to be tested. The basic tree traversal algorithm is outlined in the code listing below. A nice property of this algorithm is that each node is never visited more than once.

closest_hit = infinity
stack.clear()
stack.push(root)
while(stack.size() > 0)
{
  currentnode = stack.pop()
  if (currentnode.is_leaf == true)
  {
    // Do ray primitive intersection and update hit record
    hit = ray_triangle_intersection(ray,currentnode.triangle)
    if ( hit < closest_hit )
      closest_hit = hit
  }
  else if ( ray_box_intersection(ray,currentnode.bbox) < closest_hit )
  {
    stack.push(currentnode.leftchild)
    stack.push(currentnode.rightchild)
  }
}

In GLSL it is not possible to implement a fully dynamics stack. However, in GLSL 3.3 it is straightforward to implement a fixed sized stack of pointers as an integer array with a stack counter, e.g.

int stack[16];
int stackcounter;
...
int currentnode = stack[stackcounter];
...
stack[stackcounter] = child;

Unfortunately, the OpenGL ES Shading Language 1.0 does not allow us to access an array element with a variable index, so a stack based approach is not feasible in WebGL. Thus, we implemented the stackless BVH traversal proposed in Ref. [1], which was reported to be about 30 % slower than the stack based traversal.

An additional problem with WebGL is that Windows browsers by default translates OpenGL calls to DirectX through a layer called ANGLE. Our experience with this translation is that loops in shaders get unrolled, and, hence, if we have shaders with very long loops, the shader compiler may run out of resources and fails to compile. With the typical scenes and BVH trees that we have tested, the ANGLE shader compiler can only compile a shader that traverses the tree a single time, i.e., we can only implement a pathtracer with a single bounce. Our solution to this problem is to run each bounce in a separate pass and save the state between the passes. This method will potentially involve some overhead because intermediate results must be read from and written to a texture. Additionally we must issue an additional draw instruction for each trace pass.

Linux and Mac browsers use the native OpenGL shader compiler. The Nvidia compiler that we have tested compiles the full pathtracer in a single shader without any problems.

Test setup
Nvidia GeForce 470 GTX
Intel E5620 2.4 GHz Quad Core
Linux Nvidia drivers version 304.43
Windows Nvidia drivers version 306.97

Our test scene consists of 8728 triangles. The figure shows the final pathtraced image.

Results
Our benchmark results are shown in the table and figure below. If we compare the stackless and stack based versions in GLSL 3.3, we see that the stackless version is almost 50% slower, which is somewhat disappointing compared to the results reported in [1]. WebGL/GLSL ES 1.0 seems to be slightly slower than GLSL 3.3 when we do the full pathtracing in a single shader. The WebGL multipass version does not seem to be affected much by storing intermediate results between the passes. In fact the fastest multipass results are comparable with the results obtained with GLSL 3.3.

Table 1 Samples per second for a 512×512 pixel image of the test scene. The maximum trace depth is 4.
C++/GLSL 3.3 linux WebGL Chrome linux WebGL Firefox linux WebGL Chrome Windows (native) WebGL Firefox Windows (native) WebGL Chrome Windows (Angle) WebGL Firefox Windows (Angle)
Singlepass with stack 34.4
Singlepass stackless 18.2 15.0 13.7 15.8 14.5
Multipass stackless 15.1 15.1 17.4 15.1 19.2 18.2
[1] Efficient Stack-less BVH Traversal for Ray Tracing, M. Hapala et al., SCCG (2011).

]]>
https://viscomp.alexandra.dk/?feed=rss2&p=1616 0