code and notes for personal practice of cross-platform using opengl
https://www.opencascade.com/products/cad-rays/ https://git.dev.opencascade.org/gitweb/
https://www.glfw.org/download.html https://github.com/skaslev/gl3w/tree/master/src
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
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html https://en.wikipedia.org/wiki/Cocoa_(API)
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
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
External_Texture: https://source.android.google.cn/devices/graphics/arch-st?hl=zh-cn Fence: https://juejin.cn/post/6844903893965651981
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
Introduction:http://c.biancheng.net/asm/
WebGL Spector: http://www.realtimerendering.com/blog/debugging-webgl-with-spectorjs/ ThreeJS: https://threejs.org/examples/#webgl_geometry_teapot
Online Calculator: https://www.symbolab.com/solver/matrix-calculator
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
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)
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 INCLUDE GLSL UNIFORM Block GLSL Fast Approximation Math GLSL Reinterprecast
enscape visualize as you design
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
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)
adobe dimension, product package visualization fast
lightwave massive for crowds, simulation more dial, lighting simulation lighting manufactures
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.
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.”