码农知识堂 - 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 &
  • 相关阅读:
    C++继承详细解析+代码演示
    (附源码)ssm医疗管理系统 毕业设计 260952
    HDFS 读写解析
    firewalld常用的基础配置
    swift 【block】
    新库上线 | CnOpenData税收调查企业基本信息扩展数据
    【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了
    8.1日java复盘
    基于Django开发的推荐系统与数据分析系统
    spring-security-源码解析+自定义拓展
  • 原文地址:https://blog.csdn.net/onion23/article/details/126535570
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号