jsj2008 / NuoModelViewer

A simple Wavefront OBJ viewer.

Home Page:http://nuo.graphics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nuo Model Viewer

A simple Wavefront OBJ viewer.

Supported GPUs

  • Intel HD serious GPUs are not 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.
  • AMD Radeon RX 580 or above is recommended.
  • AMD Radeon RX Vega 56 is highly recommended.
  • AMD Radeon RX Vega 64, and AMD Radeon VII, should be working, but untested.

Latest Update

  • 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 for desktop-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.

Screenshots on Development

TODO

  • 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.
    • Cubmap 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

Early Screenshots

Screenshot of the first version (left). Add support to simple transparency (right).

About

A simple Wavefront OBJ viewer.

http://nuo.graphics

License:MIT License


Languages

Language:C++ 62.7%Language:C 18.8%Language:Objective-C++ 11.1%Language:Objective-C 3.8%Language:Metal 3.4%Language:Makefile 0.2%Language:CMake 0.0%