dc.contributor.advisor | Hendseth, Sverre | |
dc.contributor.author | Lange, Henrik Kåfjord | |
dc.date.accessioned | 2023-09-26T17:20:23Z | |
dc.date.available | 2023-09-26T17:20:23Z | |
dc.date.issued | 2023 | |
dc.identifier | no.ntnu:inspera:140443607:36112689 | |
dc.identifier.uri | https://hdl.handle.net/11250/3092164 | |
dc.description | Full text not available | |
dc.description.abstract | Prosedyredrevet generering beskriver hvordan data verdier kan skapes ved hjelp av algoritmer og matematiske prosedyrer. Typisk vil verdier som skapes av prosedyrer ha et sett med
tilfeldige egenskaper, begrenset av prosedyrens matematiske regler. Halv-tilfeldige data verdier
brukes for a skape mer dynamiske og mindre rigide resultater. Det er et virkemiddel ofte brukt ˚
i dataspill, digital kunst og musikkprosessering. For a kunne dra nytte av de genererte halv- ˚
tilfeldige data verdiene trengs det ofte mer prosessering. Et eksempel pa dette er programvare ˚
som leser matematiske verdier og viser dem pa skjermen som en tredimensjonal verden. Det ˚
finnes mange eksempler programvare som kan gjøre dette, fra grafikk programvare som gjemmer bort alle implementasjonsdetaljer til enkle programvaregrensesnitt som lar utviklere styre
alle detaljer selv. OpenGL er et eksempel pa et slikt programvaregrensesnitt, som lar utviklere ˚
jobbe med sma detaljerte kodesnutter som kjører p ˚ a grafikkprosessoren. ˚
Dette prosjektet beskriver utviklingen av en programvare som bruker OpenGL til a vise ˚
resultatene fra en prosedyredrevet genereringsprosess pa skjermen. Programvaren som utvikles ˚
i dette prosjektet vil kunne lese og prosessere data verdier og vise dem riktig pa skjermen. Den ˚
vil ikke kunne skape egne data verdier, ettersom dette er utenfor prosjektets omfang. Prosjektet
vil ogsa beskrive to forskjellige utviklingsfilosofier og hvordan de kan benyttes for ˚ a strukturere ˚
og jobbe med et utviklingsprosjekt.
Prosjektets første del bestar av en litteraturstudie med hvor søkelyset er p ˚ a de teoretiske ˚
aspektene ved data prosessering, utviklingsfilosofier og grafikkprogrammering. Denne delen
vil ha et spesielt fokus pa OpenGL programvaregrensesnittet og hvordan dette kan brukes til ˚
a vise grafikk p ˚ a en skjerm. Etter dette vil prosjektet bruke en iterativ utviklingsfilosofi til ˚
a utvikle fire forskjellige versjoner av programvaren. Disse forskjellige versjonene vil bygge ˚
pa hverandre og den siste versjonen vil være en fungerende grafisk programvare med mange ˚
forskjellige eg | |
dc.description.abstract | Procedural generation refers to the process of dynamically creating semi-randomized content using algorithms and procedures. It is commonly used to add variance and dynamism to
generated content and is commonly used in video games, digital art and digital music. The data
produced by procedural generation software is only a mathematical representation. For it to
be a useful tool in video games or digital art further processing is needed. If the procedural
generation generates 3D environments, a rendering software is needed to process the data and
render the mathematical representations as graphics on the screen. There are a large variety
of different rendering tools available. At one end of the spectrum is high-level game engines
which hides most of the details under levels of abstraction, while at the lowest level every pixel
must be calculated by the rendering software. Graphics APIs like OpenGL provide developers
with the tools to implement low-level functionality on the GPU.
This project details the development process for a piece of rendering software. This software
utilizes the low-level OpenGL API to render procedurally generated environments efficiently
using the GPU. The software developed in this project reads mathematical representations of
a 3D world and render the world on the screen. This project does not contain any procedural
generation software, as this is not within the project’s scope. It is the parsing of data and
subsequent rendering of that parsed data that is the focus of this project. Additionally, this
project also briefly explores two different development methodologies. It selects one of these
methodologies and uses it to develop the graphics rendering software.
The project first consists of researching the theoretical aspects of parsing, different development methodologies and graphics programming with an focus on the OpenGL API. Using the
theory from this research, the rendering software is developed following an iterative approach.
Over the course of several iterations, a piece of rendering software is developed with a multitude
of different graphical features included. The result is a software capable of rendering different
types of light-sources, material properties and more. At the very end of the project the iterative
approach and the development process as a whole are examined. | |
dc.language | eng | |
dc.publisher | NTNU | |
dc.title | Rendering software for procedurally
generated environments | |
dc.type | Master thesis | |