这一章节又是修正之前的错误。“Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例”
(http://blog.csdn.net/libing_zeng/article/details/69360492)

之前文章中的三角形的顶点是错误的,导致最终曲面是向里面的(而不是向外面的)。

重复贴出之前的代码截图:

根据Bezier曲面的“定义”(即两条Bezier曲线的张量积)。其中u、v分别可以理解为水平、垂直方向的参数。所以,根据上方的代码,会有如下示意图:

根据这个示意图,从图中取三点构成三角形,使得三角形的法向量向外。为了确保法向量的方向,三角形的顶点是有顺序要求的的。

之前构成三角形的代码截图如下:

我们知道三角形的法向量求法如下:

所以,按照“之前构成三角形的代码”,得到的两个三角形的法向量向里面的,从而导致整个Bezier曲面的法向量指向里面。怎么修改呢?最简单的修改方式:(交换v1、v2的顺序)

Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)相关推荐

  1. Q97:怎么用三角形网格细分Bezier曲面——以Utah Teapot为例

    0,引入 前续: Q79:怎么用三角形网格(Triangle Mesh)细分曲面 http://blog.csdn.net/libing_zeng/article/details/60600404 Q ...

  2. Q100:怎么用三角形网格细分回旋体(rotational sweeping / revolution)

    0,引入 我们在"问题六十:怎么用ray tracing画回旋体(rotational sweeping / revolution)"中已经学习了这类曲面的画法: http://b ...

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

    1,理论介绍 完整标题应该是:当"三角形网格细分后的"Bezier曲面(Utah Teapot)同时遇上"噪声纹理"和"Phong反射模型" ...

  4. 计算机图形学【GAMES-101】5、几何(距离函数SDF、点云、贝塞尔曲线、曲面细分、曲面简化)

    快速跳转: 1.矩阵变换原理Transform(旋转.位移.缩放.正交投影.透视投影) 2.光栅化(反走样.傅里叶变换.卷积) 3.着色计算(深度缓存.着色模型.着色频率) 4.纹理映射(重心坐标插值 ...

  5. Geometry 曲面细分和曲面简化

    Geometry 曲面细分和曲面简化 1 曲面细分 a) Loop细分 b) Catmull-Clark细分(Catmull-Clark Subdivision) 曲面简化 边坍缩 总结: 1 曲面细 ...

  6. 曲面细分(subdivision)曲面细分着色器GPU的LOD

    曲面细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,提高渲染效果 曲面简化是指将一个模型的面合理的合成更少的面,从而降低模型精度,为特定情形下提供使用(如LOD技术) .这一过程是可以在 ...

  7. java3d bezier曲面_使用Bezier曲面渲染飘动的红旗

    本例中我们使用的纹理如下: Bezier曲线大家应该都很熟悉了,Bezier曲线由4个控制点定义,Bezier曲线的数学定义为: 其中,p0~p3定义了4个控制点,b0~b3为伯恩斯坦多项式的项,s的 ...

  8. java画bezier曲面_计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制

    <计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制>由会员分享,可在线阅读,更多相关<计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制(9页珍 ...

  9. OpenGL(可编程管线):Bezier曲面

    Bezier曲面 Bezier线 de Casteljau算法 Bezier曲面 bezier曲面编程思想 实例 代码 运行结果 Bezier线 贝塞尔曲线由一组参数方程定义,方程组中使用控制点指定特 ...

最新文章

  1. 标题 相机标定(Camera calibration)原理和步骤
  2. pandas.DataFrame.groupby
  3. shell 字符串操作(长度,查找,替换)详解
  4. velocity mybatis spring 在maven的整合开发(二)
  5. JAVA: final 修饰符
  6. PHP弱类型及一些绕过姿势
  7. 详细透彻的分析DM9000网卡驱动程序(3)
  8. java通信录教程_java实现通讯录管理系统
  9. 木兰许可证专业解读及首批采用“木兰”开源项目列表
  10. POJ 3627 Bookshelf 贪心 水~
  11. 社群模式:什么是普通人赚钱的核心秘密
  12. jmeter校验结果_Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
  13. select模型(一 改进客户端)
  14. wpe修改充值_【图片】【WPE修改】WPE修改金币、属性、全属性、魔方实测可用版!【古戈吧】_百度贴吧...
  15. wwwscan目录扫描器的逆向分析
  16. 人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
  17. 云服务器搭建MQTT服务器
  18. HTML 区块、布局与框架
  19. 怎么压缩图片的体积大小,4款软件分享
  20. nuc9vxqnx_Intel NUC 9 Pro / Extreme(幽灵峡谷 / 石英峡谷)即将发售

热门文章

  1. leetcode:Happy Number
  2. ActiveReports 报表应用教程 (7)---交叉报表及数据透视图实现方案
  3. 字符指针变量和字符数组的对比
  4. Leetcode 5067.统计只含单一字母的子串
  5. python plt调整子图间隔
  6. 卷积/反卷积前后的张量尺寸计算
  7. linux jdk路径
  8. 使用 Gogs 搭建自己的 Git 服务器
  9. 解决Office 365应用程序无法正常启动(0X0000142)
  10. JMX configuration for Tomcat