Introducing: Visible Threshold
High quality, 3D graphics on the web should be easy. With the emergence of USD, the DCC ecosystem is standardizing on a common format for authoring and sharing 3D content between multiple apps. Today, it’s easier than ever to build compelling 3D scenes.
On the consumer side, every PC and the vast majority of phones are capable of 3D rendering. Desktop discrete GPUs have tremendous processing power, and even low-end mobile phones are quite powerful if they are used effectively.
Artists have the tools to generate 3D content, and consumers have devices powerful enough to view 3D content. So why is compelling, interactive 3D content so rare on the web? In our view, the missing piece is a powerful, artist-friendly renderer designed for the web.
The Visible Threshold Renderer:
There are several options for 3d rendering currently available. What makes our solution different?
Artist Workflow
The single most important aspect of any renderer is the artist workflow. Artists should be focused on creating a beautiful USD scene instead of worrying about the technical details. Of course, that objective is easier said than done. But there are several design decisions we can make up front to turn this goal into a reality.
OpenPBR: While there are many tools to convert to and from different material representations, any time you rely on an automatic conversion it will look a little different, and require manual revisions and tweaking. That’s why OpenPBR is the primary material model. If you author in OpenPBR, what you see in the DCC absolutely needs to match what you see in the viewer.
MaterialX and MDL: To transfer materials from the DCC to the viewer, we have embraced MaterialX and MDL as standards for material appearance.
Rendering Features: For a renderer to be viable, we need to incorporate the standard rendering features that a typical engine should have. The renderer requires multiple lights and shadows, global illumination, screen space effects, and all the nuts and bolts of a modern renderer.
Scalability: Artists should be focused on making the best art possible. They should NOT be worried about the various hardware combinations that users have. Thus, our goal is for users to author a single high-res scene that automatically scales to low-end mobile phones.
Technical Philosophy
Of course, in order to do these exciting things, we need to solve some very boring details. And it requires us to design a renderer quite differently from existing game engines and web frameworks.
WebGPU first. WebGL fallback. The renderer is primarily written for WebGPU. While WebGPU is quickly gaining adoption, it will take time and WebGL will remain as the fallback. Artists only need to “author once” for WebGPU as the lead target and the pipeline automatically builds a fallback scene to fit within WebGL limitations.
Data Size/Load Times: The single most important design constraint for the web is to load the scene as quickly as possible. Everything else is secondary. Data sizes must be reduced to the absolute minimum and assets must be conditioned ahead of time. Even the code size of the WASM executable needs to be kept as low as possible. This priority is different from console game engines where performance is more important than disk size.
Memory Optimization: Whereas a game engine can take over your entire device, a web renderer needs to use as little resources as possible. Web users have multiple windows open simultaneously so we need to be much stricter in terms of memory and CPU usage than even mobile games.
Roadmap
Admittedly, this plan is ambitious, and some of the details are a bit vague and amorphous. And the current renderer is DirectX 12 only while the port to WebGPU and WebGL is in progress. There is no specific date, but that’s what we’re doing, and we look forward to having a proper demo sooner than later.
Contact
Finally, do you have specific web 3d needs? While we have a pretty specific direction in mind, we would love to validate that plan with actual customer use cases. So if you have any questions or comments we would love to start the conversation.
Address: info@visiblethreshold.com