Developed a ray tracer as group project in university, also implemented a cloud shader.
uni
Find a file
2022-11-25 15:09:53 +01:00
camera added ex01 solution 2022-11-11 14:27:43 +01:00
common Merge branch 'master' into multithread_renderer 2022-11-25 15:09:53 +01:00
data ex 01 2022-10-28 09:31:13 +02:00
images ex 01 2022-10-28 09:31:13 +02:00
light added ex03 solution 2022-11-25 14:57:39 +01:00
primitive Merge remote-tracking branch 'base/master' 2022-11-25 15:03:11 +01:00
renderer added very basic multithreading to renderer 2022-11-23 15:42:21 +01:00
scene fixed botched merge 2022-11-25 15:09:05 +01:00
shader Merge remote-tracking branch 'base/master' 2022-11-25 15:03:11 +01:00
.gitignore Ambientlight implemented 2022-11-21 13:30:17 +01:00
BUILD_INSTRUCTIONS.md ex 01 2022-10-28 09:31:13 +02:00
CMakeLists.txt Merge branch 'master' into multithread_renderer 2022-11-25 15:09:53 +01:00
ex1.cpp ex 01 2022-10-28 09:31:13 +02:00
ex2.cpp Revert accidentally changing the path to file 2022-11-17 20:45:37 +01:00
ex3.cpp Spotlight added 2022-11-22 15:17:41 +01:00
ex4.cpp added ex04 task 2022-11-25 14:58:29 +01:00
README.md added ex01 solution 2022-11-11 14:27:43 +01:00

Build / Setup Prozess

Anweisungen ausgelagert in BUILD_INSTRUCTIONS.md

Git Grundlagen / Workflow

Git Spickzettel: https://files.morr.cc/git-spickzettel.png

Guter Schnellstart mit Begriffen und Konzepten ist Kapitel 2 des pro Git Buches: https://git-scm.com/book/de/v2/Git-Grundlagen-Ein-Git-Repository-anlegen

Musterlösung integrieren (ohne die ganze History wegzuwerfen)

Angepasst von https://medium.com/@topspinj/how-to-git-rebase-into-a-forked-repo-c9f05e821c8a

Das Musterlösungs-Repository als remote mit Namen upstream (oder ähnlich) hinzufügen:

git remote add upstream gogs@git.cg.cs.tu-bs.de:CG1_WS2223/Base.git

Alle Branches von upstream und deren Änderungen herunterladen

git fetch upstream

Die Änderungen hineinmergen und Konflikte so auflösen, dass die Musterlösung bevorzugt wird

git merge -X theirs upstream/master

bitte beachten: Dies löst nur Konflikte so auf, dass die Änderungen der Musterlösung bevorzugt werden. Wenn ihr andere Dateien hinzugefügt habt, werden diese immer noch nach dem Merge vorhanden sein. Ebenso verhält es sich, wenn ihr Interfaces von Funktionen geändert oder Änderungen vorgenommen habt, die nicht mit der upstream-Version in Konflikt stehen (z.B wenn ihr in Aufgabe 03 etwas an der Schnittpunktberechnung aus Aufgabe 01 ändert, das nicht in Aufgabe 03 angepasst wurde, wird die Änderung nach dem Merge immer noch da sein). Deswegen kann so ein Merge immer noch in nicht-kompilierbaren Code resultieren oder Bugs einführen.

Daher ist es immer eine gute Idee, sich noch einmal einen Diff zwischen der aktuellen Version und der Musterlösung zu Gemüte zu führen:

git diff master upstream/master

hier kann man dann noch ggf. selbst Hand anlegen und die Änderungen dann wieder auf das eigene Repository schieben:

git commit -am "Merge solution"

git push origin master

evtl. muss noch --force angegeben werden