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

html5 单页 响应式 网站模板网络营销有什么

html5 单页 响应式 网站模板,网络营销有什么,无锡招聘网最新招聘,用什么网站做封面最好本节对材质进行抽象并且定义了两个材质,一个是lambertian材质,另一个是metal材质。本节材质之间的不同在于材质的颜色和材质表面微元的反射光线生成。假若按照入射光线严格的生成完美反射光线,那么就是理想的反射,在现实的生活中不…

本节对材质进行抽象并且定义了两个材质,一个是lambertian材质,另一个是metal材质。本节材质之间的不同在于材质的颜色albedo和材质表面微元的反射光线生成。假若按照入射光线严格的生成完美反射光线,那么就是理想的反射,在现实的生活中不存在理想的反射,入射光线与出射光线分别位于法线的两侧,但是夹角并不相等。对于金属材质来说我们对这个反射光线加了一个随机挠动fuzz。下面来对比几种效果:

左图是分列左右两边的金属球均加了fuzz,一个加了0.3,一个是1.0,中间的是右侧的球没有使用fuzz和随机的出射光线挠动,呈现的是完美反射,右侧是两边球都是完美反射。

代码使用VS2015编写,能过如下链接下载:

链接:https://pan.baidu.com/s/1LRSyDTk5hguETX3_gCE6IQ 
提取码:akw9 
 

【材质】

我们对每个物体绑定了一个材质,材质确定了当入射光线照射这个物体形成交点的时候,我们该如何反射出射光线,假如光线被完全吸收,那么物体就是黑色,因为没有任何的散射,就是黑洞了。光照射一个物体时,分为反射与折射两个方面,本节我们分析折射,完美的折射和没有完美的完全吸收没有任何折射都是很难的。完美的折射如下图:

其中入射光线V,出射光线是红色的,它们与法线的夹角符号相反,值相同。当已知入射光线V,和N,来求出射光线(红色部分),可以看出其等于\vec{V}+\vec{2B}

代码实现如下:

vec3 reflect(const vec3 &v, const vec3& n)
{return v - 2 * dot(v, n)*n;
}

【lambertian材质】

lambertian对反射方向加了挠动:

    virtual bool scatter(const ray& r_in, const hit_record& rec, vec3& attenuation, ray& scattered) const{vec3 target = rec.p + rec.normal + random_in_unit_sphere();scattered = ray(rec.p, target - rec.p);attenuation = albedo;return true;}

【metal材质】

metal材质对这种挠动进行缩放,其中fuzz是[0, 1]之间的数字。

    virtual bool scatter(const ray& r_in, const hit_record& rec, vec3 & attenuation, ray& scattered) const {vec3 reflected = reflect(unit_vector(r_in.direction()), rec.normal);scattered = ray(rec.p, reflected + fuzz*random_in_unit_sphere());attenuation = albedo;return (dot(scattered.direction(), rec.normal) > 0);}

【光线跟踪函数】

对于光线跟踪来说,我们对每个相交的点的材质计算出出射光线scattered,再进行跟踪。在这里还需要将材质中的颜色取出用于着色,材质本身的颜色在材质的vec3 albedo;中存储,在scatter中传递给了attenuation

vec3 color(const ray& r, hitable* world, int depth)
{hit_record rec;if (world->hit(r, 0.001f, FLT_MAX, rec)){ray scattered;vec3 attenuation;if (depth < 50 && rec.mat_ptr->scatter(r, rec, attenuation, scattered)){return attenuation*color(scattered, world, depth + 1);}}else{vec3 unit_direction = unit_vector(r.direction());float t = 0.5f * (unit_direction.y() + 1.0f);return (1.0f - t)*vec3(1.0f, 1.0f, 1.0f) + t*vec3(0.5f, 0.7f, 1.0f);}return vec3(0.0f, 0.0f, 0.0f);
}

 

http://www.lbrq.cn/news/2469547.html

相关文章:

  • 明年做哪些网站致富新闻网站排行榜
  • 河北邢台有什么好玩的地方信息流优化师是干什么的
  • 商贸公司的网站建设百度网盘搜索引擎网站
  • 怎样制作网站站点湖南网站制作哪家好
  • 自己做的网站可以上架烟吗微信拓客的最新方法
  • php网站怎么做seo基础理论
  • 衡水网站建设套餐网站策划报告
  • 电子产品开发流程余姚网站seo运营
  • 做英语阅读的网站怎么制作网站教程步骤
  • 职教mooc建设委员会网站seo搜索引擎优化包邮
  • 广州微网站建设哪家好电商网站设计
  • 北京建设网站公司网站seo顾问培训
  • 团建拓展网站建设需求分析百度的链接
  • 网站建设周志200字销售管理
  • 来年做啥网站能致富首码项目推广平台
  • wordpress iis7伪静态seo公司排行
  • 建设 静态网站全球十大网站排名
  • 5000人网站开发域名查询注册信息查询
  • 学做网站的学校乔拓云网微信小程序制作
  • 网站上线流程分为seo职位要求
  • 用GIF软件做的GIF 超出网站限制免费信息发布平台网站
  • 成都私人放款联系方式电话优化公司网站排名
  • 就业网站建设总结seo网络推广师招聘
  • 杭州的电商网站建设百度大搜是什么
  • 网站开发的技术意义个人seo外包
  • 朗读者外国人做的汉字网站个人自己免费建网站
  • 公司注册地址可以跨市变更吗广州seo外包公司
  • vue做的商城网站seo是哪个英文的缩写
  • 展厅设计图效果图大全seo比较好的优化方法
  • 电子商务网站建设与管理目录企业推广软文范文
  • Day04–链表–24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
  • NLua和C#交互
  • 使用Claude Code从零到一打造一个现代化的GitHub Star项目管理器
  • 【学习路线】JavaScript全栈开发攻略:前端到后端的完整征程
  • 智慧驾驶疲劳检测算法的实时性优化
  • 如何借助AI工具?打赢通信设备制造的高风险之战?(案例分享)