Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime

License

NotificationsYou must be signed in to change notification settings

BrutPitt/glChAoS.P

Repository files navigation

glChAoS.P /wglChAoS.P ⋅ opengl /webglChaoticAttractorsofSlight (dot)Particles

RealTime 3D Strange Attractors scout on GPU
The program also explores other chaotic-objects like hypercomplex fractals (IIM algorithm) and DLA3D

 

JetBrains supportsglChAoS.PwglChAoS.P
many thanks toJetBrains for donatingo.s.license for all their excellent products

 

All available releases     ==>Release Notes (what's new)

Desktop - v1.7 (WiP)

  • glChAoS.P -DeskTop - binaries availableWindows /Linux /MacOS

WebGL - v1.7 (WiP)

  • wglChAoS.P -WebG 2 viawebAssembly -live /online using your browser - also for mobile devices
    • You can selectAdvanced Mode check box (default) or deselect it (Standard Mode) for low resources devices (mobiles/tablet/smartphones)
    • You can also to explore any single attractor, interactively, staring directly from web-page, usingExplore button near/below any attractor formula:Attractors Formulas
    • WebGL release is a more limited/lightened version, but frequently updated/rebuilt with last commits

 

To view all "chaotic-objects" currently inserted in current release, follow the link:Attractors Formulas
*any single object can be explored interactively via WebGL/WebAssembly directly from site.

 

 

Latest features from ver.1.6

TransformFeedback → multiDot particles emitter

Now all dp/dt attractors (yellow tag) have an additional new emitter type to visualize them in a progressive way and/or with multiDot (spray) effect.\Is also possible to travel, in first person (cockpit view), within the particles, following the evolution of the attractors.
simplescreenrecorder-2024-11-28_23.48.06.mp4

Lorenz Attractor - click on image to "explore" it in WebGL
       use "v" key or "cockpit" button (fromAttractors tools window) to switch to subjective view (on right)

 

New menu is available to adjust these settings:

1) Panoramic/CockPit dots/s: different emitter speed for any view
2) Number of dots for each step, real dots/s emitted are:dots/s * Emit#
3) Multiplication factor of initial radial random speed
4) Air friction/deceleration
5) Point size: there are 3 different "pointSize" for: singleDot emitter, multiDot emitter and cockpitView
6) Particles LifeTime, in sec.
7) LifeTime attenuation: when the lifeTime ends, inblending mode, the particle attenuates the intensity of this factor, any second
8) Wind direction and intensity (in units/s)
9) Gravity/Acceleration direction and intensity (in units/s)
A) Toggle cockpit view and related settings (following controls)
B) Smoothing distance: inblending mode attenuates the intensity of near dots by distance
C) Clipping distance: skip to draw closer particles
D) PiP (Picture In Picture) feature
E) TagretView is the current emitted dot, PointOfView is positioned on the wake: it adjusts the distance from head (it follows the attractor direction).
F) Move back the PoV: it follows the vectorPoV -> TGT
G) Rotate the cam around TagretView, or better: around attractor head (last emitted dot), use reset to reposition the cam
H) Move forward the TagretView position

 

Youtube Video

Simulating a comet's journey in Lorenz attractorVoyage in Multi-Chua II attractor

 
 
 

ver.1.4.2 feature: 11 unpublished attractor types:PopCorn, Mira, Hopalong and...

An absolutely personal and original "transformations" in 3D/4D of famous 2D attractors:

PopCorn, Morrone 4D transf. (ssss)Martin, Morrone 4D transf.PopCorn, Morrone 4D transf. (scsc)
sShot_20191118_173632sShot_20191113_43629sShot_20191112_04710
Mira, , Morrone 4D transf.Mira, Morrone 3D transf.Hopalong, Morrone 4D transf.
sShot_20191113_22737sShot_20191113_2269sShot_20191113_22333

Full descriptions, math formulas and code in the relative webpage:PopCorn, Mira, Hopalong and...
*now any single attractor is also explorable interactively via WebGL/WebAssembly directly from site.

 
 

Particle System rendering features

  • 100M of particles in minus of 1.6 GByte of VRAM.. up to265M (4G VRAM):Slight (dot)Particles
    • only avec4 (4-float) per vertex for position and color
  • Rendering: RealTime Surface Reconstruction / Shadows / Ambient Occlusion
  • Light Models: Phong / Blinn-Phong / GGX
  • Glow effects: Gaussian Blur / bilateral deNoise with threshold / Gaussian + deNoise
  • Anti-aliasing: FXAA
  • Image adjustment: Bright / Contrast / Gamma / Exposure / ToneMapping

WithBillboard andPointSprite techniques

3D DLA (Diffusion Limited Aggregation) -DLA3D Video Example

This is an integrated version of more simple myDLAf-optimized repo that I used inglChAoS.P / wglChAoS.P for large-scale DLA3D growth, with possibility to export/import to/from PLY format and to continue a previous rendering.

Rendering models with Aizawa attractor -Video Example

Alpha BlendingSolid Dots

Further rendering engine improvement (from ver. >= 1.3.x) -Rendering Video Example

DualPass rendering: Z-buffer surface reconstructionDualPass + Ambient Occlusion
DualPass + AO + ShadowsDualPass + AO + Shadows + mixed AlphaBlending

*features also available in WebGL advanced version

 
 

wglChAoS.P - WebGL2 online version

This is aWebGL2 /WebAssembly lightenedLIVE / ONLINE version ofglChAoSP and Supports touch screen for mobile devices, smartphones and tablets

Go towglChAoS.P - LIVE / ONLINE starting page

 

wglChAoS.P Advanced Mode - WebGL2 with new rendering engine

Starting from ver 1.3.2, also WebGL havenew rendering engine: dual pass accurate rendering, shadows and ambient occlusion

*Advanced Mode not available/tested still for mobile devices

 
 

Hypercomplex fractals like attractors - via IIM (Inverse Iterations Method)

hypercomplex fractalshypercomplex fractals

 
 

glChAoS.P features

glChAoS.P is a 3D realtime Particle System with some unique features:

  • 100M of particles in minus of 1.6 GByte of VRAM.. until265M (4G VRAM):Slight (dot)Particles
    • only 4-float (vec4) per vertex: position and color
  • PointSprite and Billboard particles types
  • 3D blended/solid/lighted particles
  • Single dot or DualPass rendering (surface reconstruction from zBuffer)
  • Shadows and AmbientOcclusion
  • Light models: Phong / Blinn-Phong / GGX
  • Distance attenuation on Size an Alpha channel
  • Full customizable colors, with several color palettes
  • Customizable glow effects: Gaussian Blur / bilateral deNoise with threshold / Gaussian + deNoise
  • Customizable FXAA filter
  • Motion blur
  • Post processing image correction:
    • gamma
    • exposure
    • brightness
    • contrast
    • toneMapping / HDR

... and more

For more usage info:glChAoS.P info

 
 

Some screenshots from different operating systems

WindowsWindows Viewports
LinuxMac OS X

 
 

Hardware required:

  • glChAoS.P - GPU with OpenGL 4.1 or higher
  • wglChAoS.P - Browser with WebGL2 capabilities (FireFox, Chrome or Chromium based browsers)

Theoretically all graphics card that supports OpenGL 4.0 supports also OpenGL 4.5, depends only from drivers (and O.S.)

About the GPUs that support the OpenGL 4.5 (with appropriate drivers and OS permitting):

  • NVidia starting from GT/GTX 4xx series
  • AMD starting from HD 5xxx series
  • Intel starting from Ivy Bridge/Bay Trail CPUs (with HD 4000/2500 graphics)

Hardware recommended:

  • GPU starting from AMD HD 7970 / NVidia GTX 670 or with better performance
  • CPU with 2 or more cores

About performance

Glow effects, mostly with sigma > 5, and DualPass/Shadows/AO requires expensive calculations in terms of performance

If you have slow performance try, in this order:

  • DisableDualPass rendering and/orAO and/orShadows
  • DisableGlowEffects and/orFXAA
  • PreferPointsprite: on AMD and Intel GPU (sensible difference of performance)
  • Decrease number of particles buffer < 3000
  • Decrease point size (if you can)
  • try squared 1024x1024 (power of 2) window size (fromSettings panel)

Supported Operating systems:

  • Microsoft Windows
  • Linux/Unix
  • Mac OS X
  • Android via webBrowser (wglChAoS.P WebGL/webAssembly, lightned version)

Tested Operating System Versions:

  • Microsoft Windows 7/8.x/10
  • Linux distributions: Ubuntu 16.04 -> 20.04, Fedora 27 -> 32
  • Mac OS 10.14 (Mojave), 10.15 (Catalina)
  • Android 5/6/7/8/9 with Firefox and Chrome

Executables

No installation program is provided: just clone it form github or download the archive and decompress it in a folder whatever: only the internal directories structure must be preserved.

For Windows and Linux glChAoSP uses OpenGL 4.5 with AZDO (Approaching Zero Driver Overhead) and a separate thread (multithread) emitter/generator of particles with memory mapped directly on GPU vRAM.

On Mac OS X, for a limitation of the OS (from Mojave Apple have deprecated OpenGL) there is a downgraded version that use OpenGL 4.1 (higher possible) with a separate thread emitter/generator that uses the conventional CPU memory.

Are provided executable for the followings OS:

  • Windows
    glChAoSP.exe andglChAoSP_32.exe: native executable (64 and 32 bit) are provided for OpenGL >= 4.5:Preferably use the 64-bit version.(you can recompile it, with appropriate define, to obtain an OpenGL 4.1 compliant)
    glChAoSP_viewports.exe: beta version of multiple viewports is also provided (floating GUI windows that can go out outside of main Viewport/Window): (only 64 bits).This is a great version, solid beta and full functional, but based on aunder development version ofImGui library.

  • Linux
    glChAoSP_Linux: native executable (64 bit) is provided for OpenGL >= 4.5: it was tested on Fedora and Ubuntu LTS.(you can recompile it, with appropriate define, to obtain an OpenGL 4.1 compliant)
    Take care to have installed OpenGL library, whereaslibX11 libXext should already be installed.

    After clone, copy or decompression, take care that executable bit of the fileglChAoSP_Linux is active (chmod +x).
    UseglChAoSP_Linux.sh to launch it from fileBrowsers like Nautilus or Caja.

    • wine
      The Windows executable, 32/64 bit, works fine also in wine 3.xx with no evident loss of performance
  • Mac OS
    glChAoSP_OSX: native executable (64 bit) is provided for OpenGL 4.1
    FromFinder click on applescript:glChAoSP_OSX.app, or form command line type directly the command:./glChAoSP_OSX
    It was tested on OS X ver 10.14 (Mojave) only, although with subsequent updates and different library versions you may need to rebuild it.Read Build/CMake sections for further information.

NOTE:
ForWindows andLinux glChAoS.P uses OpenGL 4.5 with AZDO (Approaching Zero Driver Overhead) and a separate thread (multithread) emitter/generator of particles with memory mapped directly on GPU vRAM.

OnMac OS, for a limitation of the OS (from Mojave Apple have deprecated OpenGL) there is a downgraded version, that use OpenGL 4.1 (higher possible) with a separate thread emitter/generator that use the conventional CPU memory.

Furthers build option are provided:

  • Use OpenGL 4.1 also on Windows and Linux.
  • Single thread version.

 
 

To buildglChAoS.P

Build requirements

  • Compilers with full C++14 standard required
  • CMake 3.15 or higher
  • Boost Library to build DLA3D (Diffusion Limited Aggregation) object exploration, (or uncomment DISABLE_DLA3D in CMake file to disable it)
    it has been replaced withnanoflann header-only (enclosed)

Tested Compilers

  • Microsoft Visual Studio 2019/2017/2015 (Platform Toolset v.142/141/140: it does not work with previous releases)
  • MinGW (64bit) v.9
  • CLang from v.5 to current
  • GNU C++ from v.5 to current

CMake

In the folder./src there is theCmakeLists.txt, use this folder as base directory.

Read below more about your OS.

GLFW Library

Enclosed 32/64bit built library for Windows, and 64bit for Linux and OS X
When build glChAoSP, compiler looks for GLFW library in the follows path:

  • src/src/libs/glfw/buildLinux (Linux)
  • src/src/libs/glfw/buildOSX (OSX)
  • src/src/libs/glfw/buildWin (Windows)

You need to delete it, and/or modify the CMake file, to use personal ones version.In this case you need to have installed GLFW Library, ver 3.3 or higher, or re-build the enclosed version in./src/src/libs/glfw folder.

Build glChAoS.P in Windows

Windows user needs of Visual Studio 2019 (it works also wit VS 2017/2015, but is need to change appropriatePlatform Toolset and/orWindows SDK version that you have installed). In alternative, CMake 3.10 (or higher) for other compilers toolchain (non tested, but it should work).

  • Microsoft Visual Studio

    • VS solution
      In the folder./src/msBuilds there is the solution project for use with Visual Studio 2017/2019.
      (check appropriatePlatform Toolset and/orWindows SDK version that you have installed)
      You can use alsoLLVM CLang to buildglChAoS.P from Visual Studio: you can use the LLVM plugin (after to have installed clang, in windows) and simply change thetoolchain inProperties -> General -> Platform Toolset

      • The current VisualStudio solution refers to my environment variable RAMDISK (R:), and subsequent VS intrinsic variables to generate binary output:$(RAMDISK)\$(MSBuildProjectDirectoryNoRoot)\$(DefaultPlatformToolset)\$(Platform)\$(Configuration)\
        Even without a RAMDISK variable, executable and binary files are outputted in base to the values of these VS variables, starting from root of current drive.
    • VS with CMakeFile.txt and CMakeSettings.json (testing fase - VS2019 only)
      Open./src folder invs2019 you can build bothEmscripten /CLang inside Visual Studio

  • CMake

    • You can use CMake to compile with CLang / MinGW, using mingw_make or ninja tool.

NOTE: To buildviewports version you need to add-DGLAPP_IMGUI_VIEWPORT to compiler flags, or uncomment it inappDefines.h

Build glChAoS.P in Linux

Tools required
Linux users need to install the GCC C/C++ v.5 or higher (or clang v.5 or higher) compilers and associated tools such asmake andCMake (need v3.10 or higher).
To install gcc C/C++:

  • Debian, Ubuntu:sudo apt-get install build-essential cmake cmake-qt-gui
  • Fedora, RedHat:sudo dnf install make gcc-c++ cmake cmake-gui

You need also to have installed OpenGL library and relative development package:libgl1-mesa libgl1-mesa-dev (Ubuntu) ormesa-libGL mesa-libGL-devel (Fedora).

Build
Form aTerminal window, just launchsh build_glChAoSP.sh script (from./src folder) to buildglChAoSP, it first runscmake with appropriate parameters and then startsmake to buildglChAoSP_Linux executable: it will stored in parent folder (../).

  • the script uses the enclosed built version of GLFW

Another script,buildLinux.sh, is provided (as helper) to re-build GLFW: it callsbuildGLFW.sh (to build/re-build GLFW) andbuild_glChAoSP.sh sequentially.

  • To build/rebuild GLFW from enclosed sources you must have installed also development packages:libx11-dev libxext-dev (Ubuntu) orlibX11-devel libXext-devel (Fedora).
    *(documentation:https://github.com/glfw/glfw)

Build glChAoS.P in Mac OS

Tools required
Mac users must have installedXcode and theCommand Line Tools, alsoCMake 3.10 or higher is necessary.

Build
Form aTerminal window, just launchsh build_glChAoSP.sh script (from./src folder) to buildglChAoSP, it first runscmake with appropriate parameters and then startsmake to buildglChAoSP_OSX executable: it will stored in parent folder (../)

  • the script uses the enclosed built version of GLFW

Another script,buildOSX.sh, is provided (as helper) to re-build GLFW: it callsbuildGLFW.sh OSX (to build/re-build GLFW) andbuild_glChAoSP.sh sequentially.
*(documentation:https://github.com/glfw/glfw)

Build wglChAoS.P with EMSCRIPTEN - WebGL via WebAssembly

The CMake file is able to build also anEMSCRIPTEN version, obviously you need to have installed EMSCRIPTEN SDK on your computer (1.38.201.38.28 1.38.40 or higher).UseemsCMakeGen.cmd oremsCMakeGen.sh from ./src directory, or look inside it, to pass appropriate defines/parameters to CMake command line.emsCMakeGen need to know the location of EMSDK, and the "build-type" object to create.
For example, run:

emsCMakeGen.sh /opt/emsdk/emscripten/1.38.20 Debug|Release|RelWithDebInfo|MinSizeRel wglChAoSP|wglChAoSP_lowres

emsCMakeGen.cmd C:\emsdk\emscripten\1.38.20 Debug|Release|RelWithDebInfo|MinSizeRel

To build the EMSCRIPTEN version, in Windows, with CMake, need to havemingw32-make in your computer and in the search PATH (only the make utility is enough) orNinja.
Currently all the shell/cmd scripts useNinja to buildwglChAoS.P (WebGL/WebAssembly release)

 
 

3rd party tools and color maps

glChAoS.P uses 3rd party software tools components, they are located in the./src/src/libs folder and built with the program.A copy of each is included in the repository, to avoid incompatibility with future changes.

Structure and description of 3rd parts libraries/tools/palettes, and related copyrights and licenses:

Libs and Tools

Alternatives and optional, not closely necessary

Below there are some used components, which differ fromMIT /BSD 2-Clause /Zlib license.

External Color Maps/Palettes - (optional - to load)

*optional separate files to load and to have more color maps

Alternative Library

  • glm Math Library -https://glm.g-truc.net/

    • Not more necessary.
      Now is used myvgMath single file header, used also invitualGizmo3D andimGuIZMO.quat tools: it's a sub-set ofglm, more compact, with or w/o template classes (selectable via define:vgConfig.h), and a studiedinterface that permits to switch betweenglm andvgMath only via compiler defines (vgConfig.h).
  • Boost Library in particular:function_output_iterator andgeometry are necessaryas alternative (to nanoflann) to build DLA3D (Diffusion Limited Aggregation) object exploration in glChAoS.P (can be disabled). It's not included in the repository, but can be downloaded fromhttps://www.boost.org/It is not necessary to build the library, only headers files is enough. (more information in: how to build)

    • Compile with-DGLAPP_USE_BOOST_LIBRARY flag, to use instead ofnanoflann lib

 

License

glChAoS.P /wglChAoS.P are licensed under the BSD 2-Clause License, seelicense.txt for more information.


[8]ページ先頭

©2009-2025 Movatter.jp