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

张向东高端seo服务

张向东,高端seo服务,怎么做自己的微信公众号,湖北政府门户网站建设研究目录 作业介绍代码实现 GitHub主页:https://github.com/sdpyy games101项目作业代码:https://github.com/sdpyy1/CppLearn/tree/main/games101 作业介绍 本次作业只需要实现渲染方程,首先需要理解渲染公式 其次需要知道利用蒙特卡洛公式求积…

目录

  • 作业介绍
  • 代码实现

GitHub主页:https://github.com/sdpyy
games101项目作业代码:https://github.com/sdpyy1/CppLearn/tree/main/games101

作业介绍

在这里插入图片描述
本次作业只需要实现渲染方程,首先需要理解渲染公式
请添加图片描述
其次需要知道利用蒙特卡洛公式求积分的方法
在这里插入图片描述
求渲染公式的积分部分需要在半球面采样,为了提高准确度,换元为在光源面积上采样
在这里插入图片描述

在作业中也给出了伪代码
在这里插入图片描述

代码实现

代码参考https://zhuanlan.zhihu.com/p/606074595

注释写的很清楚了

Vector3f Scene::castRay(const Ray& ray, int depth) const
{Vector3f hitColor = this->backgroundColor;// 获取光线ray与场景中物体的交点Intersection shade_point_inter = Scene::intersect(ray);// 如果有交点if (shade_point_inter.happened){// 交点坐标Vector3f p = shade_point_inter.coords;// 从摄像机到点P的方向Vector3f wo = ray.direction;// p点的法线Vector3f N = shade_point_inter.normal;Vector3f L_dir(0), L_indir(0);//光照的采样 获取位置和概率密度函数Intersection light_point_inter;float pdf_light;sampleLight(light_point_inter, pdf_light);//Get x,ws,NN,emit from inter// 光照采样点的坐标Vector3f x = light_point_inter.coords;// 从点P到光照采样点的方向Vector3f ws = normalize(x-p);// 光照采样点的法线Vector3f NN = light_point_inter.normal;// ?Vector3f emit = light_point_inter.emit;// 点p到光照采样点的距离float distance_pTox = (x - p).norm();//创建从p->采样点的光照Vector3f p_deviation = (dotProduct(ray.direction, N) < 0) ?p + N * EPSILON :p - N * EPSILON ;Ray ray_pTox(p_deviation, ws);//判断是否中间有别的物体挡住了Intersection blocked_point_inter = Scene::intersect(ray_pTox);// 如果没有被挡住就算一次Lif (abs(distance_pTox - blocked_point_inter.distance < 0.01 )){L_dir = emit * shade_point_inter.m->eval(wo, ws, N) * dotProduct(ws, N) * dotProduct(-ws, NN) / (distance_pTox * distance_pTox * pdf_light);}// 俄罗斯轮盘赌来停止递归float ksi = get_random_float();if (ksi < RussianRoulette){// 采样获得wi方向来进一步递归Vector3f wi = normalize(shade_point_inter.m->sample(wo, N));// 创建对应的光线Ray ray_pTowi(p_deviation, wi);//光线碰到了不发光的物体,需要递归处理Intersection bounce_point_inter = Scene::intersect(ray_pTowi);// 如果光线碰到了物体就需要递归处理了if (bounce_point_inter.happened && !bounce_point_inter.m->hasEmission()){float pdf = shade_point_inter.m->pdf(wo, wi, N);if(pdf> EPSILON)L_indir = castRay(ray_pTowi, depth + 1) * shade_point_inter.m->eval(wo, wi, N) * dotProduct(wi, N) / (pdf *RussianRoulette);}}// 结合直接光照和间接光照获得该点的颜色值hitColor = shade_point_inter.m->getEmission() + L_dir + L_indir;}return hitColor;
}
http://www.dtcms.com/wzjs/531705.html

相关文章:

  • 怎么做网站评估别做网络推广员
  • 做公司的网站的需求有哪些社交网络的推广方法有哪些
  • 抖音做我女朋友的网站2022年免费云服务器
  • 旅游网站建设模板竞价开户推广
  • 3.建设营销型网站流程.google chrome官网入口
  • 吉他网站怎么做软件开发网
  • 国外做兼职的网站有哪些关键词优化seo外包
  • 电商网站建设流程如何创建网址
  • 深圳市涂能装饰设计公司网站营销软件app
  • 济南搜到网络推广网站制作优化
  • 湖南长沙现在能去吗苏州seo关键词优化排名
  • 建设自己的网站快速网站轻松排名
  • 营销网站的宣传、推广与运作汕头seo外包机构
  • 西海岸建设局网站各大搜索引擎入口
  • ps网站轮播图怎么做常州seo排名收费
  • 网站升级页面模板培训学校网站
  • 开发网站需要注意的安全问题营销推广与策划
  • 莆田网站建设技术托管好网站
  • 自己做动漫头像的网站网络培训心得体会总结
  • 山西省建设厅招标网站首页seo咨询常德
  • 网站seo计划书媒体营销平台
  • 海南新闻在线新闻中心seo服务价格表
  • 广州专业做网站公司网站申请流程
  • 扬州网站建设myvodo友妙招链接怎么弄
  • 淘宝店铺怎么上传自己做的网站优化师和运营区别
  • 个人单页网站模板奉化seo页面优化外包
  • 做兼职女的网站谷歌商店下载安装
  • 上海金瑞建设集团网站百度最容易收录的网站
  • 网站免费做招生宣传seo管理与优化期末试题
  • 陕西今日重大新闻苏州seo关键词优化外包