Giter Site home page Giter Site logo

px_particles's Introduction

OpenGL + SIMD + C++

v1.0

It's a test project. Main purpose is to play with SIMD (Single Instruction Multiple Data). I'm using vectorclass library for SIMD, SFML for Window creation and input handling.

Usage

Use left mouse button to attract particles towards it. Hold left shift to attract them continuously. Use R key to reset the particles.

Command line arguments

-arg_name=value, for example -win_w=1280 -win_h=720.

argument description default value
win_w window width, has to be divisible by 4 800
win_h window height 600
fps FPS limit 0 (no limit)
alignment alignment of particles memory, has to be power of 2 32
pulse_demo are we running the pulsating demo mode? Interaction is disabled in pulse mode. 0 (non-zero means yes)
pulse_min minimum pulse time, in milliseconds 100
pulse_max maximum pulse time, in milliseconds 900
use_lines use GL_LINE_LOOP instead of GL_POINTS, gives a cool effect 0 (non-zero means yes)

Compiling

Just open the .sln using Visual Studio 2019 and compile. Binaries will in the _binaries folder.

Screens

Just note that the coolset thing about this program is that particles move really fast. It's hard to catch the fun stuff on still images.

Lines mode:

Pulsating particles mode:

Following screenshots were captured in a 1000x1000 window, 1 milion particles, clicking mode.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.