- Notifications
You must be signed in to change notification settings - Fork40
A simple Wavefront OBJ viewer.
License
NotificationsYou must be signed in to change notification settings
middlefeng/NuoModelViewer
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This project consists of:
- A Wavefront OBJ viewer, supporting both real-time rendering and ray-tracing, which is based on Viewer Foundation, a reusable framework.
- Viewer Foundation, a reusable framework consisting of:
- Viewer Foundation Render, which is an encapsulation to the Metal APIs, providing simplified resource and state management on top of the Metal APIs.
- A scene-graph-like system which enables building real-time and path-tracing based renderers.
- Apple Silicon GPU is supposed to be the only GPU working on macOS in the future.
- M1 Max.
- Intel HD serious GPUs arenot supported. (Built-in integrated GPU in most models of Mac.)
- AMD Radeon Pro 560, and built-in descrete GPUs in almost all MacBook Pro later than 2017, are barely suppored. Their performance would be poor for the ray tracing rendering.
- For early macOS on Intel supporting eGPU, AMD Radeon RX 580 or above is recommended, in particular but not limited to:
- AMD Radeon RX Vega 56 is recommended.
- AMD Radeon RX Vega 64, RX 5700, and so on, should be working, but untested.
- AMD Radeon VII is highly recommended.
- AMD Radeon Pro Vega II (Duo) (in the Mac Pro 2019). [1]
- AMD Radeon Pro W5700. [1]
[1] Acknowledge to @ibuick for the verification.
- Apple Silicon and macOS 13.3 adaptive.
- High dynamic range display.
- Replace the Performance Shader Intersector with Metal Ray Tracing shader.
- Specular lighting on a Fresnel surface.
- Multiple-importance sampling.
- Slider with adjustable scale.
- Full ray tracing.
- Hybrid rendering with ray tracing.
- Direct lighting soft shadow.
- Indirect lighting (ambient) with physically-based occlusion.
- Physically based effect for the shadow overlay (blend-in with photographic scene).
- Self-illuminating objects.
- Checkerboard background for better inspecting the result transparency.
- Inspecting intremediate textures in debug.
- Overlay indicator for selected parts.
- Transformation on the entire scene accurately around the scene's center.
- More accurate bounds calculation (improving shadow map sampling quality).
- User selection on GPU.
- Better take advantage of dedicated video memory by using private buffers. Especially important fordesktop-class graphics card or external GPU).
- Background loading.
- Motion blur.
- Blending with real-scene background.
- Ambient occlusion.
- Transform of the entire scene (including the light sources).
- Better PCSS soft shadow
- Ground shadow
- Skybox.
- BRDF mode. Fix artifacts in specular lighting.
- Save to high resolution PNG (up to 3900 px).
- Rotate individual parts (mandatory for the varying-geometry wing plane model!).
- Adjustable shadowing PCF and bias to alliviate artifacts.
- Preliminary shadowing for two of the four light sources.
- Load/save scene parameters (postion, light source direction, etc.).
- Normal texture.
- Light source configuration.
- Multiple light sources.
- Adjustable lighting direction.
- Better handling to material opacity.
- 🔲 Camera model.
- 🔲 Depth of field. Lens blur.
- 🕒 Order-independent transparency.
- 🔲 Bump (displacement) texture.
- 🕒 Support PBRT format.
- ✅ Normal texture.
- ✅ Direction of lgiht source.
- ✅ Intensity of light source.
- ✅ Mutilple light sources.
- ✅ Selectable list of object.
- ✅ Surface smooth.
- Shadow
- ✅ Shadow to model.
- ✅ Shadow to ground.
- PCSS.
- ✅ Basic PCSS.
- ✅ Adjustable occluder search range.
- ✅ More adjustable bias.
- ✅ Transparency (strength) of shadow overlay. (Achieved by ambient)
- Linear shadow map (more plausible PCSS, VSM).
- Adaptive shadow map resolution/region.
- ✅ Per light-source, per-surface shadow properties (bias, soft edge).
- ✅ Cull mode.
- Surrounding.
- ✅ Cubemap skybox.
- Water (for ship model).
- ✅ Motion blur (especially for rotating parts like rotor).
- Detailed properties panel for indiviudal model parts.
- ✅ Smooth options (everywhere, texture discontinuiation only, etc).
- ✅ Material opacity adjustment.
- Material adjustment (specular, colors, etc).
- List of board objects.
- ✅ Self illumination.
- Ray tracing
- 🕒 Faster buffer construction.
- ✅ Ground reflection.
- ✅ Specular term in direct lighting shadow, and in global illumniation.
- 🕒 Light source surface sampling.
- ✅ Shadow ray visibility.
- Multiple importance sampling. Unified reflection model.
- 🔲 Normal map.
- Specular map.
- 🔲 Translucent map.
- ✅ BRDF mode.
- ✅ Ambient occlusion.
- Model visualization
- ✅ PCSS steps visualization.
- Triangle mesh
- Normal/tangent visualization
Screenshot of the first version (left). Add support to simple transparency (right).
About
A simple Wavefront OBJ viewer.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.



















