Coder Social home page Coder Social logo

rg-2019-lab3's Introduction

Simulacija tkanina

Scena 3

U ovom projektu ostvarena je simulacija tkanine pomoću sistema opruga. Koriste se tri tipa opruga između točaka tkanine koji simuliraju strukturalnu čvrstoću tkanine, otpor tkanine na smicanje, te otpor na savijanje. Iscrtavanje scene vrši se pomoću Vulkan sučelja, dok se izračuni opruga te kolizija izvršavaju na procesoru, nakon čega se učitavaju u memoriju grafičkog koprocesora.

opruge

Izvor slike i ideje: UCI CS114: Cloth Simulation using Mass-Spring System

Dependencies

Nakon kloniranja repozitorija, potrebno je učitat git pod-repozitorije. Konkretno, koristi se Vulkan Memory Allocator za lakše upravljanje memorijom na grafičkoj kartici.

git submodule init
git submodule update

Za prevođenje je također potrebno instalirat Vulkan SDK. Makefile se treba urediti tako da se varijabla VULKAN_SDK_PATH postavi na putanju do trenutne instalacije Vulkan SDK-a.

Prevođenje i pokretanje

Za prevođenje se koristi standardni makefile. make prevodi izvorne datoteke u izvršnu datoteku SimulacijaTkanine. make shaders prevodi shadere iz GLSL oblika u SPIR-V izvršni oblik koji se učitavaju na grafičku karticu. Izvršni program (SimulacijaTkanine) pretpostavlja da se izvršni shaderi nalaze u direktoriju shaders relativno na putanju u kojoj se program izvršava.

Ukoliko je Vulkan SDK instaliran globalno, dovoljno je samo pokrenut program SimulacijaTkanine. U suprotnom, potrebno je postavit okolišnu (environment) varijablu LD_LIBRARY_PATH na putanju do Vulkan biblioteke, te ako je program preveden s podrškom za debugiranje, varijablu VK_LAYER_PATH na putanju do Vulkan validacijskih slojeva (validation layers). Komanda make test automatski postavlja navedene varijable s obziron na postavljeni VULKAN_SDK_PATH u Makefile-u te pokreće program.

Navigacija

Kroz scenu se pogled mijenja micanjem kursora, a kreće se pomoću tipka W, A, S i D, razmaknicom za dizanje, te X za spuštanje. Tipkom F se uključuje mreža linija tkanine, a tipkom G mreža opruga. Budući da se kod iscrtavanja opruga kod svake sličice u grafičku memoriju učitava velika količina podataka, ne preporuča se uključivanje tog iscrtavnja kod više od 100 točaka tkanine (n > 10).

Scene i broj točaka tkanine

Program opcionalno prima dvije vrijednosti kod pokretanja: redni broj scene (1-3) te broj točaka (n) uz duž jedne dimenzije tkanine. Ukupni broj točaka tkanine je n2. Ako se program pokreće pomoću make-a, sintaksa za postavljanje navedenih vrijednosti je sljedeća:

make test SCENE=1 POINTS=10

Scena 1

Scena 1

Scena 2

Scena 2

Scena 3

Scena 3

rg-2019-lab3's People

Contributors

filipbudisa avatar

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.