Subject: Graphics Cards, Mobile, Shows and Expos | February 23, 2016 - 08:46 PM | Scott Michaud
Tagged: raytracing, ray tracing, PowerVR, mwc 16, MWC, Imagination Technologies
For the last couple of years, Imagination Technologies has been pushing hardware-accelerated ray tracing. One of the major problems in computer graphics is knowing what geometry and material corresponds to a specific pixel on the screen. Several methods exists, although typical GPUs crush a 3D scene into the virtual camera's 2D space and do a point-in-triangle test on it. Once they know where in the triangle the pixel is, if it is in the triangle, it can be colored by a pixel shader.
Another method is casting light rays into the scene, and assigning a color based on the material that it lands on. This is ray tracing, and it has a few advantages. First, it is much easier to handle reflections, transparency, shadows, and other effects where information is required beyond what the affected geometry and its material provides. There are usually ways around this, without resorting to ray tracing, but they each have their own trade-offs. Second, it can be more efficient for certain data sets. Rasterization, since it's based around a “where in a triangle is this point” algorithm, needs geometry to be made up of polygons.
It also has the appeal of being what the real world sort-of does (assuming we don't need to model Gaussian beams). That doesn't necessarily mean anything, though.
At Mobile World Congress, Imagination Technologies once again showed off their ray tracing hardware, embodied in the PowerVR GR6500 GPU. This graphics processor has dedicated circuitry to calculate rays, and they use it in a couple of different ways. They presented several demos that modified Unity 5 to take advantage of their ray tracing hardware. One particularly interesting one was their quick, seven second video that added ray traced reflections atop an otherwise rasterized scene.
It was a little too smooth, creating reflections that were too glossy, but that could probably be downplayed in the material ((Update: Feb 24th @ 5pm Car paint is actually that glossy. It's a different issue). Back when I was working on a GPU-accelerated software renderer, before Mantle, Vulkan, and DirectX 12, I was hoping to use OpenCL-based ray traced highlights on idle GPUs, if I didn't have any other purposes for it. Now though, those can be exposed to graphics APIs directly, so they might not be so idle.
The downside of dedicated ray tracing hardware is that, well, the die area could have been used for something else. Extra shaders, for compute, vertex, and material effects, might be more useful in the real world... or maybe not. Add in the fact that fixed-function circuitry already exists for rasterization, and it makes you balance gain for cost.
It could be cool, but it has its trade-offs, like anything else.
Subject: Displays, Shows and Expos | February 21, 2016 - 08:27 PM | Scott Michaud
Tagged: MWC, mwc 16, valve, htc, vive, Oculus
Valve and HTC announced that the Vive consumer edition will be available in April for $799 USD, with pre-orders beginning on February 29th. Leave it to Valve to launch a product on a date that doesn't always exist. The system comes with the headset, two VR controllers, and two sensors. The unit will have “full commercial availability” when it launches in April, but that means little if it sells out instantly. There's no way to predict that.
The announcement blog post drops a subtle jab at Oculus. “Vive will be delivered as a complete kit” seems to refer to the Oculus Touch controllers being delayed (and thus not in the hands of every user). This also makes me think about the price. The HTC Vive costs $200 more than the Oculus Rift. That said, it also has the touch controllers, which could shrink that gap. It also does not come with a standard gamepad, like Oculus does, although that's just wasted money if you already have one.
Unlike the Oculus, which has its own SDK, the Vive is powered by SteamVR. Most engines and middleware that support one seem to support both, so I'm not sure if this will matter. It could end up blocking content in an HD-DVD vs BluRay fashion. Hopefully Valve/HTC and Oculus/Facebook, or every software vendor on an individual basis, works through these interoperability concerns and create an open platform. Settling on a standard tends to commoditize industries, but that will eventually happen to VR at some point anyway. Hopefully, if it doesn't happen sooner, cross-compatibility at least happens then.
Subject: Mobile, Shows and Expos | February 21, 2016 - 05:14 PM | Scott Michaud
Tagged: Samsung, epic games, unreal engine 4, vulkan, galaxy s7, MWC, mwc 16
Mobile World Congress starts with a big bang... ... ... :3
Okay, not really; it starts with the formation of a star, which happens on a continual basis across the universe. I won't let facts get in the way of a pun, though.
As for the demo, it is powered by Unreal Engine 4 and runs on a Samsung Galaxy S7 with the Vulkan API. The setting seems to be some sort of futuristic laboratory that combines objects until it builds up into a star. It is bright and vibrant, with many particles, full-scene anti-aliasing, reflections, and other visual effects. The exact resolution when running on the phone was never stated, but the YouTube video was running at 1080p30, and the on-stage demo looked fairly high resolution, too.
Epic Games lists the features they added to mobile builds of Unreal Engine 4 for this demo:
- Dynamic planar reflections
- “Full” GPU particle support, which includes vector fields.
- Temporal Anti-Alising, which blends neighboring frames to smooth jaggies in motion.
- ASTC texture compression (created by ARM and AMD for OpenGL and OpenGL ES)
- Full scene dynamic cascaded shadows
- Chromatic aberration
- Dynamic light refraction
- Filmic tonemapping curve, which scales frames rendered in HDR to a presentable light range
- Improved static reflections
- High-quality depth of field
- Vulkan API for thousands of onscreen, independent objects.
The company has not stated which version of Unreal Engine 4 will receive these updates. I doubt that it will land in 4.11, which is planned for March, but they tend to release a full dot-version every one to three months. They also have early previews for those who wish to try it early, some compiled leading up to launch, and others that need to be built from GitHub.