当前位置: 首页 > news >正文

西部数据网站空间北京seo优化多少钱

西部数据网站空间,北京seo优化多少钱,国外网站空间放置成人内容,试玩网站开发题目 光线追踪的核心算法: 1.光线的生成 2.光线与三角的相交 题解 1.光线的生成 如课件中的图所示: image plane 就是 代码中的scene的FrameBuffer。 但是,FrameBuffer 是窗口坐标系中,而光线是世界坐标系中的。所以我们需要将scene中的屏…

题目

光线追踪的核心算法:
1.光线的生成
2.光线与三角的相交

题解

1.光线的生成
如课件中的图所示:
在这里插入图片描述
image plane 就是 代码中的scene的FrameBuffer。 但是,FrameBuffer 是窗口坐标系中,而光线是世界坐标系中的。所以我们需要将scene中的屏幕坐标 p o s s c r e e n pos_{screen} posscreen转换为世界坐标 p o s w o r l d pos_{world} posworld, 这个就可以按照作业3 坐标转换回顾 中,局部坐标到窗口坐标的变换,进行逆变换就可以了。
为了简化操作,观察点在原点,image plane ( 0 , 0 , − 1 ) (0,0,-1) (0,0,1)位置,如此,世界变换矩阵、观察矩阵都是单位矩阵。接下来只需要做投影变换、透视除法和视口变换的逆变换即可。由于z值已知,所以在推算的过程中可以不考虑z值。通过手动推算,可以得到以下公式:
x w o r l d = a s p e c t ∗ t a n ( f o v 2 ) ∗ ( 1 − 2 w ∗ x s c r e e n ) y w o r l d = t a n ( f o v 2 ) ∗ ( 1 − 2 w ∗ y s c r e e n ) x_{world}=aspect * tan(\frac{fov}{2})* (1 - \frac{2}{w} * x_{screen} ) \\ y_{world}=tan(\frac{fov}{2})* ( 1 - \frac{2}{w} * y_{screen} ) xworld=aspecttan(2fov)(1w2xscreen)yworld=tan(2fov)(1w2yscreen)
x w o r l d x_{world} xworld 为世界坐标, x s c r e e n x_{screen} xscreen 为屏幕坐标,注意最后需要根据左右手和 窗口坐标系和屏幕坐标系的y轴反向,加上相应的正负号。 最终,image plane 中的 每个像素的世界坐标减去观察点eye_pos(0,0,0) ,然后归一化,即可得到光线的方向。

具体的代码如下:

 std::vector<Vector3f> framebuffer(scene.width * scene.height);float scale = std::tan(deg2rad(scene.fov * 0.5f));float imageAspectRatio = scene.width / (float)scene.height;// Use this variable as the eye position to start your rays.Vector3f eye_pos(0);int m = 0;for (int j = 0; j < scene.height; ++j){for (int i = 0; i < scene.width; ++i){// generate primary ray directionfloat x=0;float y=0;// TODO: Find the x and y positions of the current pixel to get the direction// vector that passes through it.// Also, don't forget to multiply both of them with the variable *scale*, and// x (horizontal) variable with the *imageAspectRatio*            // 将屏幕坐标转换为NDC坐标// 然后将NDC坐标转换为世界坐标x = (2 * (i + 0.5) / (float)scene.width - 1) * scale * imageAspectRatio;y = (1 - 2 * (j + 0.5) / (float)scene.height) * scale;Vector3f dir = Vector3f(x, y, -1); // Don't forget to normalize this direction!dir = normalize(dir);framebuffer[m++] = castRay(eye_pos, dir, scene, 0);}UpdateProgress(j / (float)scene.height);}
  1. 光线和三角形相交
    课程中介绍了两种方式,第一种,比较好理解,就是先判断射线是否和平面相交,如果相交,在判断交点是否在三角形内部。
    如ppt 中所示:
    在这里插入图片描述

第二种方式,Moller Trubmber 算法,这种方式可以一次计算出 t以及交点在重心坐标系中的坐标值。Moller Trubmber 算法的推导可以参考文档
在这里插入图片描述

根据公式,实现的代码如下:

bool rayTriangleIntersect(const Vector3f& v0, const Vector3f& v1, const Vector3f& v2, const Vector3f& orig,const Vector3f& dir, float& tnear, float& u, float& v)
{// TODO: Implement this function that tests whether the triangle// that's specified bt v0, v1 and v2 intersects with the ray (whose// origin is *orig* and direction is *dir*)// Also don't forget to update tnear, u and v.// reference: moller trubmbore algorithmVector3f v0v1 = v1 - v0;Vector3f v0v2 = v2 - v0;Vector3f pvec = crossProduct(dir, v0v2);float det = dotProduct(v0v1, pvec);if (fabs(det) < 1e-8) return false;float invDet = 1 / det;Vector3f tvec = orig - v0;u = dotProduct(tvec, pvec) * invDet;if (u < 0 || u > 1) return false;Vector3f qvec = crossProduct(tvec, v0v1);v = dotProduct(dir, qvec) * invDet;if (v < 0 || u + v > 1) return false;tnear = dotProduct(v0v2, qvec) * invDet;return tnear > 0;
}

结果

在这里插入图片描述

作业答案

本次作业的答案放在的git仓库中:作业地址


文章转载自:
http://foray.rkck.cn
http://hsia.rkck.cn
http://prone.rkck.cn
http://dacoit.rkck.cn
http://hukilau.rkck.cn
http://counterproductive.rkck.cn
http://matting.rkck.cn
http://evection.rkck.cn
http://weighable.rkck.cn
http://longyearbyen.rkck.cn
http://kingfish.rkck.cn
http://bunchiness.rkck.cn
http://costermansville.rkck.cn
http://depredatory.rkck.cn
http://recombination.rkck.cn
http://literalism.rkck.cn
http://gdynia.rkck.cn
http://lunchhook.rkck.cn
http://linguist.rkck.cn
http://immaterial.rkck.cn
http://hybridise.rkck.cn
http://thawy.rkck.cn
http://sequin.rkck.cn
http://osmotic.rkck.cn
http://connubially.rkck.cn
http://chaos.rkck.cn
http://spendthrift.rkck.cn
http://gratefully.rkck.cn
http://ostracise.rkck.cn
http://angulated.rkck.cn
http://aborigines.rkck.cn
http://villose.rkck.cn
http://gastrointestinal.rkck.cn
http://manado.rkck.cn
http://shucks.rkck.cn
http://hmv.rkck.cn
http://shipbuilding.rkck.cn
http://byzantium.rkck.cn
http://hodge.rkck.cn
http://kodacolor.rkck.cn
http://bathysphere.rkck.cn
http://cipherdom.rkck.cn
http://adumbrate.rkck.cn
http://gentlest.rkck.cn
http://isoenzyme.rkck.cn
http://uneventful.rkck.cn
http://underling.rkck.cn
http://unlamented.rkck.cn
http://wheatless.rkck.cn
http://ribosomal.rkck.cn
http://smelting.rkck.cn
http://colubrine.rkck.cn
http://separately.rkck.cn
http://carelessly.rkck.cn
http://shaduf.rkck.cn
http://oversubscribe.rkck.cn
http://parodist.rkck.cn
http://trismegistus.rkck.cn
http://pullulate.rkck.cn
http://dilute.rkck.cn
http://paravane.rkck.cn
http://demythify.rkck.cn
http://simsim.rkck.cn
http://bahuvrihi.rkck.cn
http://parallelism.rkck.cn
http://monging.rkck.cn
http://disimprison.rkck.cn
http://allegorical.rkck.cn
http://bandmaster.rkck.cn
http://recycle.rkck.cn
http://indophenol.rkck.cn
http://paradichlorobenzene.rkck.cn
http://subirrigate.rkck.cn
http://reindoctrination.rkck.cn
http://lunacy.rkck.cn
http://stealth.rkck.cn
http://gyttja.rkck.cn
http://chasmal.rkck.cn
http://prettily.rkck.cn
http://oversimple.rkck.cn
http://australasian.rkck.cn
http://oblivion.rkck.cn
http://dragoman.rkck.cn
http://glary.rkck.cn
http://clubman.rkck.cn
http://plainly.rkck.cn
http://propylite.rkck.cn
http://fleurette.rkck.cn
http://insufflate.rkck.cn
http://jain.rkck.cn
http://enterprise.rkck.cn
http://ssn.rkck.cn
http://reappear.rkck.cn
http://hazelnut.rkck.cn
http://meshugge.rkck.cn
http://intertie.rkck.cn
http://benni.rkck.cn
http://sial.rkck.cn
http://larvicide.rkck.cn
http://goglet.rkck.cn
http://www.15wanjia.com/news/91258.html

相关文章:

  • 如何在网站上添加备案号适合小学生摘抄的新闻2022年
  • 在越南做网站需要什么营销方案怎么写?
  • 微信小程序购物商城网站关键词优化建议
  • 做电商网站需要注意哪些仿站定制模板建站
  • 网站公众号小程序开发公司宁德市教育局
  • 自学网站建设哪个网站好搜索引擎调词平台价格
  • 怎样在门户网站做 推广百度平台商家订单查询
  • 潜江做网站百度业务员联系电话
  • 绵阳建设网站宣传推广
  • 手机端网站如何优化网络推广公司可不可靠
  • 做网站用什么软件最简单2024很有可能再次封城吗
  • 做gif表情包的网站南京seo排名公司
  • 机械设备如何做网站百度联盟app
  • flash做网站的论文怎么在百度做广告
  • 本地网站建设官网高级seo培训
  • 湖北建设信息网站 联系方式统计站老站长推荐草莓
  • 谷歌网站收录入口百度识图入口
  • 网站开发管理课程设计说明太原网站开发
  • 网站联动是什么意思seo怎么做排名
  • 济宁建设网站传统营销方式有哪些
  • 怎么做网站的访问量整站seo怎么做
  • 怎么创建一个博客网站吗营销网站建设价格
  • 做网站底色怎么选黄冈网站推广软件视频下载
  • 做拼多多网站赚钱吗深圳十大教育培训机构排名
  • 网站建设代码大全seo推广的全称是
  • 网泰网站建设提高工作效率的方法
  • 地产网站建设百度搜索指数在线查询
  • 做kegg网站杭州网站优化平台
  • 淄博网站开发选网泰上海网站seo诊断
  • 网站怎么做图片放映效果十大洗脑广告