-
26-08-2010, 12:15 #91Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Zijn er hier nog die in hun vrije tijd aan wat kleine programmeerprojectjes werken?
Voor het vak Computer Graphics had ik een basis rasterizer (enkel de basis: 3D triangles rasterizen met z-buffer) gemaakt en een uitgebreidere raytracer (scenegraph, versnelling met BVH, spheres en 3D triangles, bumpmapping, environment mapping, shadows, soft shadows, diffuse/phong/reflecterende/glossy-reflecterende/doorschijnende materialen, textures, instancing, multithreading). In Java zonder GPU versnelling ofzo. Kleine scene met de raytracer gerenderd:
(zou groter moeten zijn, maar wordt verkleind om een of andere reden).
Ik verveelde mij wat in de vakantie dus ik heb de rasterizer maar wat uitgebreid en clipping, shadow mapping, supersampling anti aliasing en multithreading toegevoegd. Ik heb het ook aangepast zodat je nu in de scene kan rondbewegen zowel met de rasterizer als de raytracer (daar moet je wel wat meer geduld hebben
) en ik heb full screen active rendering geimplementeerd in plaats van tekenen met paint() in een JPanel.
Vind dat wel leuk en leerrijk
Last edited by NeverwinterX; 26-08-2010 at 16:24.
no votes
-
-
26-08-2010, 12:52 #92Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Maak het ook leerrijk voor ons en share de code?
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
27-08-2010, 02:18 #93Member
- Registered
- 17/07/02
- Location
- Wilrijk
- Posts
- 1,994
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 9/16
Is dat ene stanford bunny op zenne kop? + ene triceratops
no votes
-
27-08-2010, 10:17 #94Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
no votes
-
27-08-2010, 10:36 #95Member
- Registered
- 24/03/03
- Location
- Gent/World
- Posts
- 2,321
- iTrader
- 22 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/5
no votes
-
27-08-2010, 10:55 #96Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Zitten inderdaad mooie dingen tussen. Maar een exacte raytracer maken is niet zo heel erg moeilijk natuurlijk als die uren mag staan renderen op een afbeelding van 0.5MP. De kunst is om een raytracer te maken die realtime kan renderen
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
27-08-2010, 13:33 #97Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Ja man, beeld u de dag in dat computers snel genoeg zijn om niet alleen realtime te renderen, maar ook nog eens duizenden objecten in een virtuele wereld interactief kan maken enzovoort.
En beeld u dan in dat er een nieuwe game uitkomt =D iets zoals Left 4 Dead, wat een ervaring zou dat zijn man :oo/'no votes
-
27-08-2010, 13:42 #98
Geef mij maar Pacman.
no votes
-
27-08-2010, 13:49 #99Member
- Registered
- 24/03/03
- Location
- Gent/World
- Posts
- 2,321
- iTrader
- 22 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/5
Real-time renderen met een raytracer is al mogelijk als je het op het een state-of-the-art GPU programmeert. Alleen zal het wel nog ettelijke jaren duren eer zoiets wordt toegepast voor games
.
no votes
-
27-08-2010, 14:04 #100Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Daar zou je niet zoveel uit leren hoor, het is het zelf maken waaruit je leert

Bovendien denk ik dat diegenen die het vak CG volgen aan de kul het maar al te graag zouden hebben
Jups de stanford bunny staat achter die glazen bol en zie je dus omgekeerd door die bol.
Op de achtergrond zie je inderdaad een triceratops die van een boom eet.
Het zijn trouwens die bunny, triceratops en de boom (vooral de boom) die voor het merendeel van de geometrie objecten zorgen (de bollen bestaan nl niet uit triangles, maar zijn pure bollen): 533219 objecten waarvan 9 bollen en de rest triangles.
Dat is wel heel lastig: daarvoor heb je een speciale processor of GPU-versnelling (met cuda, opencl of directcompute ofzo) voor nodig.
De scene die ik toonde duurde 2846 seconden (> 47 min) met 1 core, 1856 seconden (> 30 min) met 2 cores. Maar de instellingen zijn wel vrij zwaar: soft shadows met 100 samples telkens, glossy reflectie met 40 samples telkens, 16 sample anti aliasing en maximale recursie diepte van 4 voor reflecterende rays.
Ik heb trouwens een vrij interessant resultaat gevonden. Ik test regelmatig eens hoe lang een bepaalde scene (niet die dat ik hierboven toonde, die duurt wat te lang om even te testen
) duurt na elke java update. Met java 6 update 13 duurde die 26 seconden. Na java 6 update 14 nog maar 21.5 seconde. Dat is dus puur door optimalisaties in de Java VM in die update (ik heb de nieuwe G1 garbage collector ook opgezet via argumenten).
no votes
-
27-08-2010, 14:10 #101Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Gij doet da met Java? Java is toch algemeen gezien een stuk trager als C++, welk resultaat zou je dan krijgen?
o/'no votes
-
27-08-2010, 14:17 #102
Wat betreft dat ray tracen, deze site heb ik al een hele tijd tussen mijn bookmarks staan. Nog geen tijd gehad om het volledig door te nemen, maar het ziet er wel interessant uit.
no votes
-
27-08-2010, 17:18 #103Approved 9-lifer
- Registered
- 27/08/04
- Location
- Leuven
- Posts
- 930
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 11/38
Ja dat was gemaakt voor een vak waarbij ze u een kleine basis gaven (paar klassen om de scene files die ze gebruikten te lezen enzo) en die waren in Java. Voorts was mijn C++ beperkt tot de basis en om dat nog rap rap helemaal door te nemen voor dat vak begon, dat was me toch wat te riskant.
Ik betwijfel voorts of het echt zoveel verschil zou uitmaken, bij dit soort dingen draait het vooral om uw algoritmen. De snelheid van Java ligt tegenwoordig erg dicht bij C++.no votes
-
27-08-2010, 18:03 #104Member
- Registered
- 15/07/08
- Location
- genk
- Posts
- 83
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
ik heb overlaatst nog een stom programmeke geschreven waarvoor ik backtracking nodig had, nu was dit echt redelijk traag in java wat ik nogal raar vond, want het ging maar om een klein aantal niveau's diep.
toen heb ik het eens in C++ geprobeerd en dit gaf veel sneller een resultaat.no votes
-
27-08-2010, 18:21 #105Approved 9-lifer
- Registered
- 21/08/08
- Location
- Hasselt
- Posts
- 2,653
- iTrader
- 8 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 5/46
Ahja aan de KUL geven ze niet echt C++ zeker?

En ja der is toch wel wat performantieverschil, mijn bachelorthesis handelt daar een stuk over.
Java - en andere virtual machine talen - wordt enkel front-end-compiled tot bytecode, die bytecode is nog totaal niet geoptimaliseerd voor een bepaalde hardware ofzo. Dat gebeurt pas tijdens de uitvoer, dan zal de virtual machine die gegevens aanpassen/invullen.
C++ - en anderen - wordt ook nog eens back-end gecompileerd, dus voor een bepaalde hardware. Dit heeft als nadeel dat het een stuk minder dynamisch is - classloaders enz zijn onbestaande in zulke talen - maar dit zorgt er wel voor dat een gecompileerd C++ programma volledig klaar is om uitgevoerd te worden!
Games en dergelijke worden daarom vaak in die talen geschreven. In principe geldt, hoe dichter bij instructiecode, hoe sneller
Op de UH wordt er eigenlijk meer met C++ geprogrammeerd dan met Java, wat eigenlijk wel jammer is want bij Java kan je je meer focussen op het design ipv al die pointershit enzo xD
Vakken omtrent design worden dan ook in Java gegeven.o/'no votes

