Virtual Paradise 0.4.1-alpha.10

New

  • Determine active lights for each light cluster using a compute shader, which is much faster with many lights (Direct3D Feature Level 11_0 required)
  • Use a fixed width font used for action fields in object properties
  • Show application name and version when right clicking on users in user list

Fixed

  • Fix select recent objects (debug menu)
  • Fix too large radius used for light culling (causes more unnecessary lighting calculations to be done, reducing performance)
  • Fix incorrect light culling for nearest light cluster

Known Issues

  • Multi-sample anti-alias needs to be disabled or VP won’t function properly in Direct3D 11 mode
  • New lighting approach only available in Direct3D 11 mode
  • Names above avatars don’t appear
  • Web commands and overlays don’t work
  • Objects with transparent surfaces are still limited to a maximum of 32 active lights for the whole scene

Download

Download for 64-bit Windows

Virtual Paradise 0.4.1-alpha.9

New

This version does lighting using a ‘clustered shading’ approach. Behavior and performance might be different compared to the previous version.

Starting with this version lights will also have a finite range of 3x the radius= specified in the light command. An object with the following command:

create light color=red radius=20

Will result in a light with the first 20m having the same intensity as in previous versions, but reduce its intensity linearly over the next 40m beyond that. This is added on top of the existing intensity curve, instead of replacing it.

Fixes

  • Fix specular maps on opaque objects in Direct3D 11 mode
  • Fix sound volume settings not being applied to new sounds (streaming sources like MP3, Ogg Vorbis and Opus only, WAV was unaffected)

Known issues

  • Multi-sample anti-alias needs to be disabled or VP won’t function properly in Direct3D 11 mode
  • New lighting approach only available in Direct3D 11 mode
  • Names above avatars don’t appear
  • Web commands and overlays don’t work
  • Some scenes with many lights may be slower, even on very capable graphics hardware, because the light clusters are calculated on the CPU
  • Objects with transparent surfaces are still limited to a maximum of 32 active lights for the whole scene

Download

Download for 64-bit Windows

Feedback

I would appreciate any feedback on this test version. Please comment below this post to share your thoughts.

Virtual Paradise 0.4.1-alpha.8

Here’s a new test version of VP ? Download link at the end of this post.

What’s new?

  • Fix non-Direct3D 11 renderers
  • Fix incorrect lighting in OpenGL with shaders mode (spot light falloff was not being applied to specular)
  • Improved network handling
  • Fixed crashes during reconnect
  • Fix crashes when maximum number of active sounds is reached (see jump point doorbell hell)
  • Fix typo in settings dialog
  • Dutch translations updated

Download

Download for 64-bit Windows

Vulkan Renderer Progress: Lights

I started working on a Vulkan renderer for Virtual Paradise back in 2016. Halfway through 2017 it could render most static models without any materials or lighting. Until recently I didn’t really put a lot of effort into actually getting it to work. Over the last few weeks I’ve been working on it some more and have actually made some progress! ?

Materials, world light and positional lights are working now:

Lighting working with Vulkan renderer

And this is how it is supposed to look:

The same scene using the Direct3D 11 renderer

So, there is still some work to do! A few things that are missing: textures, spot lights, sky rendering, anti-aliasing, normal mapping, particle systems, 2D elements like avatar name tags, shader based skeletal animation, selection bounding boxes, and probably more.

I’m still getting used to how things work compared to APIs like OpenGL or Direct3D. It’s definitely a lot more difficult to get started (so I took two years to do so ?, although I rarely even looked at it during this time). To take better advantage of this API and use multiple threads for rendering, the main (non-Vulkan-specific) code will also need to be changed, but I think I will focus on functionality first.

What’s going on with Virtual Paradise?

Some of you may have been wondering what is going on with Virtual Paradise, it has been a while since the last release on the 29th of December. The reason it is taking this long for a new version to be released is because I am working on some bigger changes under the hood. These changes are necessary to make it possible for Virtual Paradise to work better on more PCs.

Missing OpenGL drivers can be a problem for some Windows users when using VP. For example, the graphics drivers included in Windows Vista and Windows 7 do not include OpenGL drivers, only Direct3D. No driver usually means Microsoft’s OpenGL software rasterizer will be used, this slows down rendering so much that it is not really usable for any modern 3D application. VP will run at a frame rate of probably less than 5 frames per second, depending on the world contents and window size. While in most cases this can easily be fixed by installing a new driver, it is not something I want to require of everyone who wants to use VP. For this reason the next version of Virtual Paradise will have a Direct3D 9 renderer in addition to a OpenGL renderer.

In previous releases OpenGL was directly called from lots of places in the code. For Virtual Paradise to use multiple renderers, the code using OpenGL has to be abstracted from the rest of the code. This is not too hard to do, it’s just a lot of work. While doing this, I am also trying to clean up other parts of the code.

Right now, the Direct3D renderer is already just as functional as the OpenGL renderer but not all parts of the 0.2.x versions are implemented yet. Maybe I will upload a preview version later so you can see the progress.

See ya,

Edwin. 😀