{"id":49151394,"url":"https://github.com/njucg/moer-lite","last_synced_at":"2026-04-22T06:11:16.446Z","repository":{"id":156283485,"uuid":"597256196","full_name":"NJUCG/Moer-lite","owner":"NJUCG","description":"面向教学的蒙特卡洛路径追踪（Monte Carlo Path Tracing）渲染框架","archived":false,"fork":false,"pushed_at":"2026-04-11T05:17:14.000Z","size":243007,"stargazers_count":66,"open_issues_count":2,"forks_count":26,"subscribers_count":0,"default_branch":"2025","last_synced_at":"2026-04-11T07:14:37.389Z","etag":null,"topics":["computer-graphics","educational-project","monte-carlo","path-tracing","pbr","renderer"],"latest_commit_sha":null,"homepage":"https://njucg.github.io/Moer/","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/NJUCG.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-04T01:28:37.000Z","updated_at":"2025-12-14T09:37:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d32ce99-db98-4c97-a6bc-94f8a85eb8db","html_url":"https://github.com/NJUCG/Moer-lite","commit_stats":{"total_commits":64,"total_committers":5,"mean_commits":12.8,"dds":0.265625,"last_synced_commit":"f922ae9294faf3c8af7f0745ac034967b739c5a7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NJUCG/Moer-lite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NJUCG%2FMoer-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NJUCG%2FMoer-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NJUCG%2FMoer-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NJUCG%2FMoer-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NJUCG","download_url":"https://codeload.github.com/NJUCG/Moer-lite/tar.gz/refs/heads/2025","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NJUCG%2FMoer-lite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32123670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["computer-graphics","educational-project","monte-carlo","path-tracing","pbr","renderer"],"created_at":"2026-04-22T06:11:15.576Z","updated_at":"2026-04-22T06:11:16.435Z","avatar_url":"https://github.com/NJUCG.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moer-lite：面向教学的蒙特卡洛路径追踪渲染框架\n\n## 简介\n\nMoer-lite是一个面向教学的蒙特卡洛路径追踪框架。它提供了很多已有的功能，可以避免从零开始构建渲染器时遇到的一些工程性障碍。  \nMoer-lite支持的功能不多，它只提供基础的积分方法、材质以及纹理，一些更强大的方法需要依靠同学们自己实现。  \nMoer-lite的框架基于Moer主干：https://github.com/NJUCG/Moer .\n\n这是一片自由发挥的乐园，希望同学们学习愉快。\n\n## 编译和使用\n\n请参考Lab0的编译使用过程。\n\n## 示例场景\n目前有五个示例场景：\n- `examples/area-lights`：提供了一个面光源照亮一个Stanford bunny的场景；\n- `examples/two-spotlights`：提供了一个有着两个点光源的场景；\n- `examples/bunny`：提供了一个使用环境光（environment lighting）照亮Stanford bunny的场景。\n- `examples/cornell-box`：提供了一个使用whitted-style ray tracing的cornell-box场景\n- `examples/lab1-test0`：提供了一个简单的mesh场景用来进行求交测试\n## BUG反馈\n\n如果发现Moer-lite框架存在bug，或者有任何架构上的改进意见，任何更好的第三方库……\n请不要犹豫，你有多种渠道可以向我们反馈：\n1. 直接在QQ上联系助教；\n2. 向助教发邮件；\n3. 在这个Github仓库的issues页面提出建议。\n\n## Update\n- 2023-3-2 添加了进度条，whitted-style积分器，镜面材质以及一个新场景cornell-box。\n\n- 2023-3-10\n  - 修改了Cube.cpp 28、29行bug（之前代码正确性不影响，但是逻辑不对）\n  - 修改了Triangle.cpp中的bug（之前当mesh文件不存在法线和纹理信息时会发生段错误）\n  - 对AABB进行封装（见Shape::getAABB）\n  - Scene::rayIntersect、Shape::rayIntersectShape、Acceleration::rayIntersect、Integrator::li中const Ray\u0026 修改为Ray\u0026\n  - 修改了Acceleration求交的接口，现在每个加速结构需要实现bool Acceleration::rayIntersect(Ray \u0026ray, int *geomID, int *primID, float *u, float *v) const函数\n  \n- 2023-3-11\n  - 增加了Octree八叉树，实现八叉树需要你实现以下两个方法\n    - std::shared_ptr\u003cOctreeNode\u003e Octree::recursiveBuild\n    - bool Octree::rayIntersect\n  - 增加了`examples/lab1-test0`测试场景，用于测试加速结构的效率\n  - 目前可以修改配置文件中scene的acceleration参数用来测试不同的加速结构，现在可选的参数有`embree`（default）、`linear`（没有任何求交加速）、`octree`（需要实现）\n  - 修改了面光源存在时运行发生段错误\n  \n- 2023-3-18\n  lab1有关内容更新 具体请看实验手册\n\n- 2023-4-18\n  更新了lab2，新增代码以及实验手册请切换到本仓库lab-2分支进行查看\n  添加了lab0的手册\n  \n- 2023-10-6\n\n  修正了lab2对于微表面模型公式中，G项的描述错误\n\n## 纠错\n- Parallelogram.cpp 中的 Parallelogram::uniformSampleOnSurface方法，其中 area 应为 `cross(edge0, edge1).length()`， 即去掉.5f的系数（感谢苏尧同学的指正）\n\n## TODO\n- 对mesh和sphere实现表面采样（目前只有parallelogram可以配置为面光源）\n- 加速环境光的采样","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjucg%2Fmoer-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjucg%2Fmoer-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjucg%2Fmoer-lite/lists"}