码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Games101 作业5】光线追踪 渲染小球


    本次作业中,有2个函数需要修改:

     其中第二个比较简单,我们先讲第二个。

    rayTriangleIntersect():在Triangle.hpp中

    按照PPT公式来实现即可。

    需要注意的点是:公式中的b1 b2 (1-b1-b2)分别代表了三角形中心坐标中的α,β,γ,计算完之后,除了要验证 t 是否为正, 还要验证b1 b2 (1-b1-b2)是否在三角形内!

    实现代码如下:

    1. // TODO: Implement this function that tests whether the triangle
    2. // that's specified bt v0, v1 and v2 intersects with the ray (whose
    3. // origin is *orig* and direction is *dir*)
    4. // Also don't forget to update tnear, u and v
    5. bool rayTriangleIntersect(const Vector3f& v0, const Vector3f& v1, const Vector3f& v2, const Vector3f& orig,
    6. const Vector3f& dir, float& tnear, float& u, float& v)
    7. {
    8. Vector3f e1 = v1 - v0;
    9. Vector3f e2 = v2 - v0;
    10. Vector3f s = orig - v0;
    11. Vector3f s1 = crossProduct(dir, e2);
    12. Vector3f s2 = crossProduct(s, e1);
    13. float dividend = dotProduct(s1, e1);
    14. Vector3f divisor = {
    15. dotProduct(s2, e2),
    16. dotProduct(s1, s),
    17. dotProduct(s2, dir)
    18. };
    19. Vector3f result = divisor / dividend;
    20. tnear = result.x;
    21. u &
  • 相关阅读:
    JS高级:Web Workers高级(多线程)
    计算机视觉 基于CUDA编程的入门与实践
    聊一聊模板方法模式
    数字安全实操AG网址漏洞扫描原理与技术手段分析
    Django中序列化器or模型单独使用
    IOS Swift 从入门到精通: 可选项、展开和类型转换
    从 CentOS 8 切换到 Oracle Linux 8
    leetcode 268. 丢失的数字(异或!!)
    健身装备有哪些推荐?健身运动装备品牌排行榜
    MySQL数据库查询实战操作
  • 原文地址:https://blog.csdn.net/onion23/article/details/126535570
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号