{"id":15679452,"url":"https://github.com/halcy/openclpt","last_synced_at":"2025-08-17T14:35:29.613Z","repository":{"id":11009292,"uuid":"13335040","full_name":"halcy/openclpt","owner":"halcy","description":"A simple OpenCL path tracer with spheres and mixed glossy/specular + diffuse + emission material","archived":false,"fork":false,"pushed_at":"2014-02-13T22:25:46.000Z","size":8556,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-31T08:51:15.334Z","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/halcy.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":"2013-10-04T21:21:21.000Z","updated_at":"2023-05-30T20:04:47.000Z","dependencies_parsed_at":"2022-08-30T02:12:11.873Z","dependency_job_id":null,"html_url":"https://github.com/halcy/openclpt","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/halcy%2Fopenclpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Fopenclpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Fopenclpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Fopenclpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halcy","download_url":"https://codeload.github.com/halcy/openclpt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252854452,"owners_count":21814685,"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-03T16:31:13.781Z","updated_at":"2025-05-07T09:47:27.772Z","avatar_url":"https://github.com/halcy.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"OpenCLPT\r\n==========\r\n\r\nA simple OpenCL path tracer with interactive preview.\r\n\r\nCommand line options (Mandatory, see also included .bat files):\r\n\r\n\u003cpre\u003e\r\nopenclpt.exe \r\n\t[window width] \\\r\n\t[window height] \\\r\n\t[speedup grid extent] \\\r\n\t[scene file] \\\r\n\t[material file] \\\r\n\t[samples per kernel invocation] \\\r\n\t[camera initialization file]\r\n\u003c/pre\u003e\r\n\r\nControls: \r\n* Tracing:\r\n\t* Y to pause path tracing\r\n\t* X to resume path tracing\r\n* Movement:\r\n\t* L to lock/unlock camera\r\n\t* Mouse to look\r\n\t* WASD to move around\r\n\t* Q/E to go up/down\r\n* Preview and Output:\r\n\t* f/g, 1/2 through 7/8: Decrease / Increase brightness slightly -\u003e strongly\r\n\t* B to dump current frame buffer to bitmap file\r\n\t* K to dump current camera position and orientation to file\r\n* Post-filtering:\r\n\t* V: Activate bilateral filter\r\n\t* C: Deactivate bilateral filter\r\n* Misc:\r\n\t* P to pause everything for a second\r\n\t* Escape to quit\r\n\r\nTo make, open the .sln file in Visual Studio and compile, everything \r\nthat is required should be included in the repository. Currently,\r\nonly windows is supported, but most of the code (everything that is\r\nnot user input handling) is platform independent and should work on\r\nany platform with a new enough OpenGL.\r\n\r\n![Screenshot](https://github.com/halcy/openclpt/blob/master/coolbox.png?raw=true)\r\n\r\nThe path tracer is relatively simple and straightforward, paths are traced\r\nusing standard monte-carlo path tracing with russian roulette termination.\r\nTracing is accelerated using a regular grid data structure pre-computed on \r\nthe CPU (Precomputation should only take a few seconds even for complex\r\nscenes).\r\n\r\nThe input file format for scenes and materials is a variant of the obj/mtl\r\nformat: For the scene itself, the format is a subset of obj - only triangles\r\nwith vertex normals are supported. Material names must be numeric. For the \r\nscene to be the right way around, -Y should point up and -Z should point\r\nforwards.\r\n\r\nThe material format is as follows:\r\n\r\n\u003cpre\u003e\r\nm [material number]\r\na [albedo r] [albedo g] [albedo b]\r\ne [emissive r] [emissive g] [emissive b]\r\np [specularity (0 to 1)] [transparency (0 to 1)] [specular quality]\r\n\u003c/pre\u003e\r\n\r\nThe albedo is simply the colour of the material, the emissive colour is the \r\ncolour of light emitted. Specularity gives how much of the material is \r\nspecular / transmissive. Transparency gives how much of the specular\r\npart is transmissive. The specular quality controls the glossiness of\r\nthe material - higher means more perfect reflections. See the included\r\nmaterial library for some examples.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalcy%2Fopenclpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalcy%2Fopenclpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalcy%2Fopenclpt/lists"}