Skip to content

JackKaiXing/lightman

Repository files navigation

LightMan

code and notes for personal practice of cross-platform using opengl

Resources

OpenSourceProjects

https://www.opencascade.com/products/cad-rays/ https://git.dev.opencascade.org/gitweb/

GLFW/GL3W

https://www.glfw.org/download.html https://github.com/skaslev/gl3w/tree/master/src

JSON

Json Header Only

GUI

https://github.com/juliettef/IconFontCppHeaders https://github.com/CedricGuillemet/ImGuizmo https://github.com/ocornut/imgui/wiki/Useful-Extensions https://github.com/ocornut/imgui/tree/docking https://github.com/tashaxing/imgui_cmake_starter ocornut/imgui#984 https://github.com/morizotter/imgui-practice/blob/master/ImguiPractice/ImguiPractice/main.cpp

MacOS

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html https://en.wikipedia.org/wiki/Cocoa_(API)

MacOS OPENGL

https://developer.apple.com/documentation/appkit/nsopenglcontext https://developer.apple.com/documentation/appkit/nsopenglcontext/1436212-makecurrentcontext https://developer.apple.com/documentation/appkit/nsopenglcpswapinterval https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions https://sodocumentation.net/opengl https://stackoverflow.com/questions/3933027/how-to-get-the-gl-library-headers MultiViewPort:https://stackoverflow.com/questions/726379/how-to-use-multiple-viewports-in-opengl RenderContext: https://docs.microsoft.com/en-us/windows/win32/opengl/rendering-contexts MultiWindow: https://discourse.glfw.org/t/how-to-create-multiple-window/1398 Macos_GLUpdate: https://developer.apple.com/documentation/appkit/nsopenglcontext/1436135-update Macos_Context: https://developer.apple.com/documentation/appkit/nsopenglcontext Macos_Thread(with update): https://developer.apple.com/documentation/dispatch/1452870-dispatch_sync Macos_NTThread: https://blog.actorsfit.com/a?ID=01350-0c68a681-1abd-4d9d-adda-38872bee9dac Memory Leaks

Win OPENGL

https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-wglgetprocaddress https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getprocaddress https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createwindowa CreateWindow: https://baike.baidu.com/item/CreateWindow/5076220, https://cpp.hotexamples.com/examples/-/-/CreateWindowA/cpp-createwindowa-function-examples.html LoadOpenGLMunually:https://www.khronos.org/opengl/wiki/OpenGL_Loading_Library, https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions, https://community.khronos.org/t/how-do-i-use-getprocaddress-wglgetprocaddress-without-type-cast/45020 WhyLoadOpenGlmanually?: google/filament#652, \https://apoorvaj.io/loading-opengl-without-glew/ Why GLEXT for GLCOREAARB?: https://stackoverflow.com/questions/54913829/where-is-glcorearb-h-supposed-to-come-from-and-where-is-it-supposed-to-live-in Sync: https://www.khronos.org/opengl/wiki/Sync_Object SwapBuffers: https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-swapbuffers FrameBuffers: https://learnopengl.com/Advanced-OpenGL/Framebuffers Deferred Shading: https://learnopengl.com/Advanced-Lighting/Deferred-Shading Uniform Block: https://learnopengl.com/Advanced-OpenGL/Advanced-GLSL, https://learnopengl.com/code_viewer_gh.php?code=src/4.advanced_opengl/8.advanced_glsl_ubo/advanced_glsl_ubo.cpp

Android OPENGL ES

External_Texture: https://source.android.google.cn/devices/graphics/arch-st?hl=zh-cn Fence: https://juejin.cn/post/6844903893965651981

C++

Memorry Fragment:https://stackoverflow.com/questions/3770457/what-is-memory-fragmentation Placement New:https://en.cppreference.com/w/cpp/language/new#Placement_new, https://stackoverflow.com/questions/1554774/create-new-c-object-at-specific-memory-address Right Value:https://juejin.cn/post/6844903497075294216 ParameterPack: https://en.cppreference.com/w/cpp/language/parameter_pack Mutable: https://en.cppreference.com/w/cpp/language/cv Enum: https://belaycpp.com/2021/08/24/best-ways-to-convert-an-enum-to-a-string/ Magic_Enum: https://github.com/Neargye/magic_enum

ASM

Introduction:http://c.biancheng.net/asm/

3rdLib

TinyFileDialog RPly

WebGL

WebGL Spector: http://www.realtimerendering.com/blog/debugging-webgl-with-spectorjs/ ThreeJS: https://threejs.org/examples/#webgl_geometry_teapot

Matrixs

Online Calculator: https://www.symbolab.com/solver/matrix-calculator

Graphics Debug Tool

Tools: https://www.khronos.org/opengl/wiki/Debugging_Tools General Macos Graphics Tool: https://developer.apple.com/library/archive/technotes/tn2178/_index.html, https://www.reddit.com/r/opengl/comments/o7tj13/opengl_profiler_for_macos/ Summary: https://apitrace.github.io/#download

Anti-Aliasing

Summary: https://www.techspot.com/article/2219-how-to-3d-rendering-anti-aliasing/ FXAA: https://developer.download.nvidia.cn/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf, https://en.wikipedia.org/wiki/Fast_approximate_anti-aliasing MSAA: https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing, https://en.wikipedia.org/wiki/Multisample_anti-aliasing, (hardware supported)

BRDF

Retro Reflection What is BRDF? Disney BRDF Explorer MERL BREF DataSet MERL BREF DataSet2 How to capture BRDF? A Data-Driven Reflectance Model Lambert Diffuse, Derivation of Lambert Diffuse, Derivation of Lambert Diffuse2 Blinn-Phonn Blinn-Phonn Shader ThreeJS Blinn-Phonn Shader Blinn Phong Energy Conservation1 Blinn Phong Energy Conservation2 Blinn Phong Energy Conservation3 Wrap Shading1 Wrap Shading2 Wrap Shading3 Wrap Shading4 Wrap Shading5 Disney BRDF Disney BRDF Explorer Blender WorkBench BRDF

GLSL

GLSL INCLUDE GLSL UNIFORM Block GLSL Fast Approximation Math GLSL Reinterprecast

Virtual Stage

enscape visualize as you design

Virtual Stage/Concert/Character

virtual production1 stage craft arri unreal composure unreal hand-held device for fore ground masking1 unreal hand-held device for fore ground masking plugin virtual stage example example crest ship example unreal engine compositin example virtual stage virtual stage company company example unreal engine, simulate a singer example virtual concert

Modelling Software

a list List of 3D computer graphics software VFX software list1 VFX software list2 3d coat cheetah for animals metaseq modo siemens NX adobe medium, vr modelling autodesk Alias, product modeling promine, mine solution modeling realsoft, abstract art modeling shade 3d, very complex, more pattern, bezier/nurbs silo wings 3d speed tree elixxier, virtual photo studio 3lateral, digitization of human appearance and motion Note: SpeedTree(tree), PlantFactory(plants), DazStudio(Human&Clothes), VUE(LandScape)

Model Resources

clara

Advertising

adobe dimension, product package visualization fast

Render/Simulation software

lightwave massive for crowds, simulation more dial, lighting simulation lighting manufactures

Reyes

JRMAN, a reyes example source code aqsis, blog renderman reyes, wiki reyes, original paper micropolygon why reyes why reyes2 reyes houdini github reyes1 github reyes2 renderman interface specification fractals, geometric shapes containing detailed structure at arbitrarily small scales graftals, disappeared in houdini Reyes Theory Reyes Resource Reyes JRMan

Note_01:Reyes, individual developer has given up for years as github implies and no new coming siggraph papers any more rencently, but houdini is using it. So it is a valuable sowrd that only few company are playing. It is required less memory and render fast than tracing, expecially for massvie scene with files, fogs, explosion....VFX.

Animation Software

The Past and Future of Animation Software: Fast(Rendering/Modeling), Complex(Model/Physical Simulaton/Physical materials/), High-Quality, Diversity(Procedural/fractals/particle system/graftals). houdini Note_01:Complexity of models and abundance of textures are more impoartant than ray tracing effect, since non-local lighting could be approximated with texture maps. “Raytrace rendering in Mantra(Houdini) is used for calculating reflections and refratctions.”

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published