Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”

2023-11-19

1,理论介绍

完整标题应该是:当“三角形网格细分后的”Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”。
其实,就是将“Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例”
http://blog.csdn.net/libing_zeng/article/details/69360492
中的材料由“SV_Matte”换成“SV_Phong”

“SV_Matte”的定义、实现可以参考:Q95:纹理映射(Texture Mapping)——地球仪
http://blog.csdn.net/libing_zeng/article/details/65625675

“SV_Phong”的定义、实现和“SV_Matte”非常十分特别相似,此处不赘述(后续有完整代码链接)。
(关于“Phong反射模型”的原理,参考:“问题六十八:Phong反射模型的C++实现”
http://blog.csdn.net/libing_zeng/article/details/56676911))

“Phong反射模型”就说这么多;“噪声纹理”还是会用到marble、sandstone、wood。

简单说来,这一章节生成图形的三个步骤:
1,用三角形网格细分Bezier曲面(以Utah Teapot为例);
2,将“噪声纹理”设置给材料Phong(对应这“Phong反射模型”);
3,将“材料Phong”设置给曲面。

2,测试图形

2.1 测试代码

相对与“Q97”的测试代码,需要修改两处:

1,相机的位置(eye)、光源的方向
这里写图片描述

2,将SV_Matte换成SV_Phong
这里写图片描述

2.2 输出图形

接下来测试的三组图形,分别对应marble、sandstone、wood纹理。
前边是SV_Matte对应的图形;后边是SV_Phong对应的图形。

Marble:
这里写图片描述 这里写图片描述

Sandstone:
这里写图片描述 这里写图片描述

Wood:
这里写图片描述 这里写图片描述

3,其他说明

完整代码下载链接:http://download.csdn.net/detail/libing_zeng/9805846

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型” 的相关文章

  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • 构造函数中显式关键字的使用

    我试图了解 C 中显式关键字的用法 并查看了这个问题C 中的explicit关键字是什么意思 https stackoverflow com questions 121162 但是 那里列出的示例 实际上是前两个答案 对于用法并不是很清楚
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 如何将“外部模板”与由同一类中的模板化成员使用的嵌套类一起使用?

    首先 一些背景信息 我尝试以 Herb Sutter 在他的解决方案中介绍的方式使用 Pimpl 习语 得到了 101 http herbsutter com gotw 101 这在头文件中看起来像这样 include pimpl h h
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项

随机推荐

  • ext4 mballoc之buddy算法

    buddy bitmap 根据 Ext4文件系统介绍 理论篇 nginux的博客 CSDN博客 我们知道磁盘上有1block 大小 默认4K data block bitmap 每bit位代表一个block的使用情况 1代表占用 0代表空闲
  • 机器学习主题模型之LDA参数求解——变分推断+EM近似

    由上一篇可知LDA主要有两个任务 对现有文集确定LDA模型参数 的值 或对一篇新文档 根据模型确定隐变量的分布p z w 由于无法直接求出这个后验分布 因此可以考虑使用Laplace近似 变分近似 MCMC Gibbs采样法等算法求解 1
  • 如何解决Visual Studio 2017 运行后控制台窗口一闪就消失了

    安装使用Visual Studio 2017 后 用Ctrl F5运行程序 结果控制台窗口一闪就没了 也没有出现 press any key to continue 或者 请按任意键继续 出现这种原因 主要是建立工程时选用的是 空工程 Em
  • Spring Boot日志框架Log4j 2详解(干货)

    程序开发过程中 Log日志是发现问题和分析问题的利器 可以通过打印的Log可以快速的定位bug出现的原因 好的Log信息还会提供问题的解决方法 Spring Boot 默认使用的是logback日志框架 在性能方面Log4j2更优 Spri
  • FreeRTOS之系统配置

    1 FreeRTOS的系统配置文件为FreeRTOSConfig h 在此配置文件中可以完成FreeRTOS的裁剪和配置 在官方的demo中 每个工程都有一个该文件 2 先说一下 INCLUDE 开始的宏 使用 INCLUDE 开头的宏用来
  • Hbase数据库的安装

    Linux tar 命令 菜鸟教程
  • 编码GBK不可映射字符的三种解决方法

    当我们需要输出中文时 在DOS等运行和调试代码时会出现 study01 java 3 错误 编码GBK的不可映射字符 System out println 浠婂 鐨勬棩鏈熸槸锛 day 锛 或者中文编码错误 原因 Windows CMD和P
  • IP地址与int整数的转换

    将 IP 地址转换成 10 进制整数 例如 IP 地址为10 0 3 193 把每段拆分成一个二进制形式组合起来为00001010 00000000 00000011 11000001 然后把这个二进制数转变成十进制整数就是16777312
  • CTFShow-WEB入门篇--信息搜集详细Wp

    CTFShow WEB入门篇详细Wp 信息收集 web1 web2 web3 web4 web5 web6 web7 web8 web9 web10 web11 web12 web13 web14 web15 web16 web17 web
  • 微服务项目之项目简介

    目录 项目模式 技术栈 项目架构图 模块 主模块 项目模式 电商模式 市面上有5种常见的电商模式 B2B B2C C2B C2C O2O 1 B2B模式 B2B Business to Business 是指 商家与商家建立的商业关系 如
  • 软件设计师---程序设计语言

    程序设计语言 简介 编译程序和解释程序 真题 程序设计语言基本成分 真题 传值调用和传地址调用 代码实现 真题 编译 解释程序翻译阶段 真题 符号表 真题 编译过程概述 词法分析 语法分析 语义分析 目标代码生成 小结 真题 动态语义错误
  • Axure RP PC电商平台Web端交互原型模板

    Axure RP PC电商平台Web端交互原型模板 原型图内容齐全 包含了用户中心 会员中心 优惠券 积分 互动社区 运营推广 内容推荐 商品展示 订单流程 订单管理 售后及服务等完整的电商体系功能架构和业务流程 在设计尺寸方面 本套模板按
  • jquery之锚点定位和jquery模拟锚点定位效果,页面滚动到相对应的位置时,所在的导航文字高亮显示

    1 常见的锚点定位效果 a a div 或 a href print a div 这种方法 如果网页中有顶部固定导航栏 那么常见的锚点定位就会被遮住了一部分 很难用样式弥补 于是可以考虑第二种方法 js模拟锚点跳转效果 2 js模拟锚点跳转
  • @SpringBootApplication注解分析

    首先我们分析的就是入口类Application的启动注解 SpringBootApplication 进入源码 Target ElementType TYPE Retention RetentionPolicy RUNTIME Docume
  • Visual Studio和idea自用快捷键

    写代码不停的在键盘与鼠标之间切换真的是非常影响心情 多学点快捷键 一能服务自己 二能在妹子前耍帅 何乐不为 因为自己还是菜鸡一个 很多功能自己还用不到 所以先贴上几个自己常用的还有想用的吧 网上的太全了自己看着也不方便 VS Studio快
  • 详解qsort函数的使用及模拟实现qsort函数

    目录 引言 1 qsort函数简介 qsort函数原型 函数参数介绍 比较函数 compar 的编写 补充 void 类型的指针 2 qsort函数示例 2 1对int类型排序 2 2对char类型排序 2 3对浮点型排序 2 4对结构体类
  • Cygwin安装、使用和软件更新

    http www ibm com developerworks cn aix library au spunix cygwin 幸运的是 Cygwin 见 参考资料 在 Windows 环境中提供大家熟悉的一片天地 就像是美国人在法国找到了
  • AOM、VTM初体验及安装tensorflow

    AOM VTM初体验 文章目录 AOM VTM初体验 Cmake AOM 命令参数 VTM 安装tensorflow Anaconda的快速入门 对比GPU和CPU的计算速度 Cmake cmake的定义是什么 高级编译配置工具 当你用不同
  • 按键的短按和长按检测

    方法一 常用的加延时函数 在中断服务函数中加一个比如10ms的延时函数 延时时间的长短取决于实际所用的按键特性 只要延时时间比抖动时间略大即可 原理很简单 加了延时就避开了抖动的这段时间 在延时之后判断引脚电平 如果为低电平就表示是按下 v
  • Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”

    1 理论介绍 完整标题应该是 当 三角形网格细分后的 Bezier曲面 Utah Teapot 同时遇上 噪声纹理 和 Phong反射模型 其实 就是将 Q97 怎么用三角形网格细分Bezier曲面 以Utah Teapot为例 http