Support for the NPGR004 (Photorealistic graphics) lecture. Summer semester 2024/2025.
Every sNN-* directory refers to one item of the lab plan
(see row 2 of this table)
More details will be provided in this repository. Checkpoint
information will be included in the associated step directories
(e.g. s03-ch1-HDRimage contains definition of the Step 03 and Checkpoint 1 as well).
Every tNN-* directory refers to one optional topic. You
should pick at least two topics for your individual ray-tracer
extensions.
The src directory contains support files from the lecturer. The default
version uses .NET 8.0
(it goes well with OpenTK.Mathematics 5.0-pre13).
Select .NET 8.0 (Long Term Support) if creating a new project,
it works well on Windows, Linux and macOS.
We use Visual Studio 2022, the Community
(free) version is good enough for all tasks. Linux users can use
Visual Studio Code, which is able to open
.sln, .csproj files and even the saved options from Visual Studio.
See this shared table for current points. Check the dates of individual Checkpoints...
Contact me pepca@cgg.mff.cuni.cz for any suggestions, comments or complaints.
Please place all your files in new directories located in solution.
The naming conventions in the standard Visual Studio project creation procedures
allow you to simply copy a pilot task project to the solution directory.
Rewrite the README.md which will be your default file for documentation!
Files and directories that should be copied from src to the solution directory:
rt004/
rt004/rt004.csproj
rt004/rt004.sln
rt004/Program.cs
rt004/Properties/
rt004/Properties/launchSettings.json
rt004/shared/
rt004/shared/placeholder
shared/
shared/FloatImage.cs
shared/Util.cs
Template for your documentation is here. Please edit all the sections, you could include individual file sections for your finished checkpoints and extensions.
The use of AI assistants (based on Large Language Models) is not prohibited, you can use them under two conditions:
- you must acknowledge for each checkpoint that the AI assistant significantly helped you.
- you must document your use of the assistant. For example, if you use ChatGPT, record the entire conversation and post a link to it. For more "built-in" assistants, you should write a verbal report of what the help looked like, how often (and how hard) you had to correct the machine-generated code - and if you used comments in the code, leave them in!
You will work in your own private repositories. You could start from our shared repository and add your own code and documentation as you solve individual checkpoints.
We recommend using one of the following platforms - there are more detailed instructions for each of them. The only bigger difference is in the 3rd step (granting permissions to a lab supervisor).
Although you will grant me access (and I will be notified by email), you will need to email me at least initially! I need to associate your name with your GIT account and email address.
- You have to set up a new private repository yourself.
- Connect it to
our shared GIT using
git remote. The command might look like this
$ git remote add upstream https://github.com/pepcape/RT004.git- Finally, you have to give me permissions to access your private repository, this is done using the "Collaborator" role. Please invite me - https://github.com/pepcape.
- If your GitHub username is a nickname, please email us with your real name.
- You have to set up a new private repository yourself.
- Connect it to
our shared GIT using
git remote. The command might look like this
$ git remote add upstream https://github.com/pepcape/RT004.git- Finally, you have to give me permissions to access your private repository, this is done using the "Reporter" role. Please invite me - https://gitlab.mff.cuni.cz/pelikan.
- If anything doesn't work well in your Linux/macOS environment, you should write me (pepca@cgg.mff.cuni.cz) as soon as possible. Of course you could report positive experience in Linux/macOS as well.
- It seems like the
System.Numericslibrary doesn't support fully thedoubletypes yet, so I'm going to use the lightweightedOpenTK.Mathematicslibrary instead, distributed in NuGet form - You can work in your repositories without major restrictions. The recommended location for your solution is the solution directory.
- You can tag your GIT history (e.g.
Chk 1etc.) for archiving your progress at the checkpoints. It is always a good idea to write me an email or mention me in the commit message (@pepcapeon GitHub,@pelikanon GitLab)! - With one exception (s03-ch1-HDRimage) there is no
need to use branches to communicate with me. Please keep your best
working version in the
mainbranch (of course, you can use branches for your temporary work states) - I need to be able to compile your projects easily. Please keep your solution
(
.sln) and project files (.csproj) working all the time - Use
$(ProjectDir)as the start directory for your project - it is easier to reference input/config files in this case - Put all your input config (scene description) files under GIT control,
it helps other people (me) to test your project. Fill the text box
Debug -> rt004 Debug Properties -> Command line argumentswith reasonable values, as this item is also versioned - Update your
README.mdfile[s] frequently, preferably after each checkpoint, I'd like to see your progress - For Markdown syntax, see pages: Markdown syntax, Another MarkDown page, Markdown Cheatsheet
- Visual Studio 2022 supports direct MarkDown editing with live result preview
- While both parsing and writing floating point numbers, use strictly
neutral/invariant culture - no floating "commas"
3,14, only "dots"3.14. Remember to force this on English operating systems, (useCultureInfo.InvariantCulture), your code has to work on Czech/Slovak OS as well... - Update your repository clone from upstream (
git pull upstream main) often, I'll update the original from time to time (small fixes in support files...)