All Projects → middlefeng → Nuomodelviewer

middlefeng / Nuomodelviewer

Licence: mit
A simple Wavefront OBJ viewer.

Projects that are alternatives of or similar to Nuomodelviewer

Graphics Algorithm
3D图形学算法Code。包括软渲染、光线追踪、PBR等等~
Stars: ✭ 67 (-67.63%)
Mutual labels:  graphics, renderer, rendering-engine
Rendy
State of the art "build your own engine" kit powered by gfx-hal
Stars: ✭ 750 (+262.32%)
Mutual labels:  graphics, renderer
Hybridrenderingengine
Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
Stars: ✭ 563 (+171.98%)
Mutual labels:  graphics, rendering-engine
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (-62.32%)
Mutual labels:  graphics, renderer
Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+1818.36%)
Mutual labels:  graphics, rendering-engine
Beam
✨ Expressive WebGL
Stars: ✭ 383 (+85.02%)
Mutual labels:  graphics, renderer
Pixi.js
The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.
Stars: ✭ 34,982 (+16799.52%)
Mutual labels:  renderer, rendering-engine
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+5588.89%)
Mutual labels:  graphics, rendering-engine
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (+568.12%)
Mutual labels:  graphics, rendering-engine
Mini3d
3D Software Renderer in 700 Lines !!
Stars: ✭ 1,320 (+537.68%)
Mutual labels:  graphics, renderer
Overload
3D Game engine with editor
Stars: ✭ 335 (+61.84%)
Mutual labels:  graphics, rendering-engine
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+903.38%)
Mutual labels:  graphics, rendering-engine
Softwarerenderer
Software rendering engine with PBR. Built from scratch on C++.
Stars: ✭ 323 (+56.04%)
Mutual labels:  graphics, rendering-engine
Renderhelp
⚡️ 可编程渲染管线实现,帮助初学者学习渲染
Stars: ✭ 494 (+138.65%)
Mutual labels:  graphics, rendering-engine
Photon-v2
A program that takes photographs of a virtual world.
Stars: ✭ 75 (-63.77%)
Mutual labels:  renderer, rendering-engine
Graphicsrenderer
A drop-in UIGraphicsRenderer port -- CrossPlatform, Swift 4, Image & PDF
Stars: ✭ 85 (-58.94%)
Mutual labels:  graphics, renderer
Nimble
An OpenGL renderer with a modern and extensible rendering pipeline.
Stars: ✭ 144 (-30.43%)
Mutual labels:  renderer, rendering-engine
Picasso
Picasso is a high quality 2D vector graphic rendering library. It support path , matrix , gradient , pattern , image and truetype font.
Stars: ✭ 205 (-0.97%)
Mutual labels:  graphics, rendering-engine
Lambdacube Edsl
Previous version of LambdaCube 3D as Embedded Domain Specific Language in Haskell. Check the latest system:
Stars: ✭ 186 (-10.14%)
Mutual labels:  graphics
Possumwood
Possumwood is a graph-based procedural authoring tool, in concept not dissimilar to popular CG packages like Houdini, Blender or Maya. It is intended to serve as a sandbox for computer graphics algorithms and libraries, providing a user-friendly and coding-free UI for libraries that would otherwise be inaccessible for an average user.
Stars: ✭ 197 (-4.83%)
Mutual labels:  graphics

Nuo Model Viewer

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.

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, 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.

Latest Update

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].