{"id":22842670,"url":"https://github.com/thecodeboss/fantasi","last_synced_at":"2025-04-28T13:21:07.930Z","repository":{"id":15127451,"uuid":"17854528","full_name":"thecodeboss/Fantasi","owner":"thecodeboss","description":"A realtime raytracer built using an OpenGL Compute shader","archived":false,"fork":false,"pushed_at":"2024-07-01T01:59:51.000Z","size":2352,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-30T10:01:36.117Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thecodeboss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-18T05:09:48.000Z","updated_at":"2024-07-01T01:59:54.000Z","dependencies_parsed_at":"2022-08-29T03:31:25.544Z","dependency_job_id":null,"html_url":"https://github.com/thecodeboss/Fantasi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeboss%2FFantasi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeboss%2FFantasi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeboss%2FFantasi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeboss%2FFantasi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecodeboss","download_url":"https://codeload.github.com/thecodeboss/Fantasi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251319601,"owners_count":21570429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T02:09:15.643Z","updated_at":"2025-04-28T13:21:07.865Z","avatar_url":"https://github.com/thecodeboss.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fantasi\n\nFantasi is a realtime raytracer built using OpenGL Compute shaders. The intention is\nto maintain a certain level of physically-based rendering (to create gorgeous,\nphotorealistic renders), while ensuring that it runs in realtime.\n\nFor some more details, check my website: thecodeboss.com\n\nWindows only, I'm afraid. I'll make it multi-platform when the inspiration strikes.\n\n![Screenshot](./docs/screenshot.png)\n\nYouTube video: https://www.youtube.com/watch?v=ijqaBhyXN98\n\n# Feature Support\n\nIt supports basic materials defined by their emissive, ambient, diffuse, and specular\ncolors, as well as additional parameters of shininess, refractive index, absorption\ncoefficient and dielectrics. This material model will certainly be expanded and ironed\nout a bit better in the future, but for now it is a great photorealistic framework.\n\nLighting uses properties of the Fresnel effect, and supports expected raytracing\nreflections and shadows with ease.\n\nPrimitives currently supported are triangles, spheres, and metaballs. If you're\nunfamiliar with metaballs, they're essentially spheres that glob together.\n\nOh, it also has anti-aliasing.\n\n# Controls\n\n'W', 'A', 'S', 'D': Forward, left, back, right (or you can use arrow keys).\n\n'R': Increase number of reflections\n\n'1', '2', '3': Set the anti-alias parameter\n\n'Shift': Maps 'W' and 'S' (and corresponding arrow keys) to up/down instead of forward/back.\n\n# Future Development\n\nSadly I have not used any acceleration structures. The main obstacle is getting these\nto run efficiently on the GPU; generally these structures are highly optimized with the\nassumption that memory access is fast, which is not true on the GPU. For the future,\nI'll continue to look through papers and try to find a way to implement this.\n\nThe metaballs are slow due to ray-marching. I've done some optimization already, however\nI imagine there is quite a bit more optimization that can be done. I may post more ideas\non this on my blog at some point, if I can organize the thoughts floating in my mind.\n\nI was struck with the sudden motivation to write an XML parser, so I could store my scene\ngeometry somewhere other than Main.cpp. So I wrote it - but then got lazy to actually\nuse the darn thing. I'll do it at some point.\n\n# License and Restrictions\n\nFantasi is free to use, modify, and distribute assuming this readme remains, with this\nlicense unmodified. Using Fantasi code for profit is prohibited unless given permission\nto do so. Generally speaking if you contact me about using some of the code for profit,\nit will be acceptable, but doing so without contacting me is NOT.\n\nFantasi is provided AS IS, and the user assumes all risks involved with using the software.\nI am not responsible for damaged software/hardware in any form, and I am not obligated to\nprovide bug fixes or new features (though if you contact me I will probably be helpful).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeboss%2Ffantasi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodeboss%2Ffantasi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeboss%2Ffantasi/lists"}