{"id":16147473,"url":"https://github.com/edap/ofxraytracer","last_synced_at":"2025-03-18T18:31:48.986Z","repository":{"id":41255184,"uuid":"100454052","full_name":"edap/ofxRayTracer","owner":"edap","description":"A Ray Tracer in openFrameworks","archived":false,"fork":false,"pushed_at":"2020-02-10T19:12:10.000Z","size":2685,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-11T00:25:23.416Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/edap.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":"2017-08-16T06:10:11.000Z","updated_at":"2024-04-08T01:03:55.000Z","dependencies_parsed_at":"2022-09-10T07:40:43.531Z","dependency_job_id":null,"html_url":"https://github.com/edap/ofxRayTracer","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/edap%2FofxRayTracer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2FofxRayTracer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2FofxRayTracer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edap%2FofxRayTracer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edap","download_url":"https://codeload.github.com/edap/ofxRayTracer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221715723,"owners_count":16868606,"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-10-10T00:25:24.319Z","updated_at":"2024-10-27T18:13:10.413Z","avatar_url":"https://github.com/edap.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ofxRayTracer\nA Ray Tracer in openFrameworks\n\n![current](img/current.jpg)\n\nThis ray tracer implementation was written as exercise for this [online course](http://graphicscodex.com/projects/rays/index.html), course prepared by prof. Morgan McGuire.\n\nIt is intended for personal use. It provides a way to load an `.obj` file through the `ofxAssimpModelLoader` and render it.\n\n### Requirements.\nYou need to install tbb. On MacOS, follow this [answer on SO](https://stackoverflow.com/questions/45884514/what-are-xcode-8-environment-variables-to-run-intel-threading-building-blocks)\n\n### Usage\n\nYou need to set up a scene\n\n```cpp\nshared_ptr\u003cofImage\u003e image;\nofxAssimpModelLoader modelCornell;\nvector\u003cof3dPrimitive\u003e primitives;\nvector\u003cofLight\u003e\tlights;\nofNode centerOfTheScene;\n\nmodelCornell.loadModel(\"CornellBox-Original.obj\", 20);\n// set up a scene\ncenterOfTheScene.setPosition(0, 0, 0);\n// set the lights\nofLight light;\nlight.setPointLight();\nlight.setPosition(0, +0.5, -3.0);\nlights.push_back(light);\n\n// read the models and fullfill the primitives vector\nofxRTMeshHelper::readModelAndGetPrimitives(modelCornell, primitives, centerOfTheScene);\n// position the primitives\ncenterOfTheScene.move(0, -1, -3);\n```\n\nand this is how you launch the render\n\n```cpp\nofxRTPinholeCamera camera;\nshared_ptr\u003cofImage\u003e image;\nimage-\u003eallocate(800, 600, OF_IMAGE_COLOR);\nofxRayTracer rayTracer = ofxRayTracer(primitives, lights);\nrayTracer.traceImage(camera, image);\n```\n\nHave a look at the `example-cornellbox` app.\nOn this [file](NOTES.md) there are my notes written while I was writing the renderer\n\nTODO:\n\n- [x] colors\n- [x] multithread\n- [x] indirect rays\n- [x] colored shadows\n- [x] antialiasing\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fofxraytracer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedap%2Fofxraytracer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedap%2Fofxraytracer/lists"}