411 REFERENCE · Wikibooks
Fractals/Computer graphic techniques/3D
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Rendering
API ( C++, JS ...)
Backends (Renderer Back-End Architecture):
OpenGL 4.1+ for Linux, macOS and Windows
OpenGL ES 3.0+ for Android and iOS
Metal for macOS and iOS
Vulkan 1.0 for Android, Linux, macOS, and Windows
WebGL 2.0 for all platforms
Rendering
image-order rendering ( CPU-based ray tracing )
object-order rendering ( GPU-based rendering. Faster since we can apply the same instructions, but on different vertices in parallel.)
"A single frame in Toy story 4 could take anywhere between 60 to 160 hours to render using CPU based ray tracing."Brendan Galea The Math behind (most) 3D games - Perspective Projection by Brendan Galea
Elements
mesh
texture ( map )
geometric transform
pipline
3D graphics have more in common with vector graphics than with raster graphics. The content of an image is specified as a list of geometric objects. The technique is referred to as geometric modeling.
Rendering the scene = creating 2D image of 3D object/worldAn Introduction_to_Computer_Graphics by David J. Eck
Light and shadow
Lights and Shadows by Bartosz Ciechanowski
Physically Based Rendering in Filament
3d still images
The task of a 3D graphics program is to turn the specification of a 3D environment to 2D pictures. Advanced Graphics Algorithms by Professor Ying Zhu
There are two ways to generate such pictures:
real-time rendering (interactive graphics applications such as video games or simulations)
non-real-time rendering ( non-interactive graphics applications such as film).
Programming languages for host programs ( CPU) using API
C
C++
Special APIs
OpenGL
WebGl
Direct3D
Vulkan
OpenCl
CUDA
programming languages for shader programs ( GPU)
GLSL ( OpenGl)
HLSL ( DirectX)
Cg (NVIDIA's shading language)
Pipeline or workflow
thumb|right|3D Rendering
The 3D pipeline contains:
a hardware pipeline ( main memory, CPU, a PCI Express bus, GPU, and GPU memory)
a software pipeline
software pipelines:
Host program on CPU ( The 3D programs that run on the CPU )
Shader programs on GPU ( The bulk of the 3D data processing )
The job of the host program includes :
Initialization
Set up or reconfigure the 3D software pipeline
Build shader programs
Transfer shader programs to GPU
Data management
Load 3D data
Process the 3D data
Update 3D data
Transfer the 3D data to GPU
Send commands to GPU
Process user inputs and update the 3D data
Shader programs:
vertex shaders
fragment shaders
geometry shaders
Each APi has it's own pipeline
mesh
MeshLab - the open source system for processing and editing 3D triangular meshes.
It provides a set of tools for editing, cleaning, healing, inspecting, rendering, texturing and converting meshes. It offers features for processing raw data produced by 3D digitization tools/devices and for preparing models for 3D printing.
Converting 2D images to 3D
2D fractals mapped onto a Riemann sphere
For height of each pixel one can use :
distance to boundary : "I'm using the distance estimate method (DEM) as the basis of my height values. (inverted, the log, scaled and streched, etc.)" Duncan C Duncanc Champney at fractalforums
fractional iteration values 3D plot with fractional iteration values by Duncan Champney
3D to 2D
project the points in 3D space into cylindrical surface that can be unwrapped, to a flat surfaceronny restrepo blog : Lidar Data to 2D
video or animation made from 2D images
What is the difference between video and animation ?
Software used to do the conversion :
answer on fractal forum answer on fractal forum
commons help
parameter plane
One can make videos using :
going along some paths on parameter plane ( for example internal and external rays )
Poincaré half-plane metric for zoom animationPoincaré half-plane metric for zoom animation by Claude Heiland-Allen
zoom into parameter planeReally Deep Fractal Zoom Movie – Much Faster by Bruce DawsonMaking Mandelbrot Set Movies by Tony FinchMLbrot by Daniel de Rauglaud using automatic determination of Iteration Max numberDiscussion : A way to determine the ideal number of maximum iterations for an arbitrary zoom level in a Mandelbrot fractal
changing coloring scheme ( for example color cycling - Fractint)
changing some parameters of algorithm, for example :
maximal iteration of escape time algorithm
bailout value Gif image by jgabase : a wormhole effect on your fractals by changing the bailout dynamicaly
path
straight line from c=-0.75+i to c=-0.75-i. It is mostly in the exterior of Mandelbrot set ( then Julia set is disconnected with no interior). There is only one point c=-0.75 where c belongs to the boundary of Mandelbrot set ( root point between period 1 and 2 hyperbolic components). In that point Julia set has interior ( parabolic ).Video : "Julia fractal morph: -0.75+i to -0.75-i" on youtube by rrwick
from c=-2 to c=1.65 ( real slice of Mandelbrot set ) video on youtube by rrwick
around a circle centred at -1 and with a radius of 0.25
around main cardioid video on youtube by rrwick
parameter traces a circle centred at -0.29848658+0.65843271i and with a radius of 0.004. On the parameter plane, this does a circle around a point of the Mandelbrot fractal that is radiating 11 strands in a very loose spiral.video on youtube by rrwick
races a circle centred at -1.57621921451761 and with a radius of 3.6 x 10^-10. On the parameter plane, this does a circle around a minibrot at that location without passing through the minibrot itself.video on youtube by rrwick
References