位置: 编程技术 - 正文

解决opengl计算顶点法向量问题(opengl函数)

编辑:rootadmin

推荐整理分享解决opengl计算顶点法向量问题(opengl函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl教程48讲,opengll,opengl nehe,opengl 计算,opengll,opengl,opengl,解决opengl计算顶点法向量问题,内容如对您有帮助,希望把文章链接给更多的朋友!

由于毕业论文的需要,近期开始学习OpenGL,由于新手刚开始接触所以总会遇到很多问题。这两天,总算把OpenGL中顶点法向量这个问题弄明白了。

几点迷惑:

在网上百度,发现很多求平面法向量的介绍以及程序。后面才知道顶点法向量才是我要的。对于空间中的三个点,怎么确定平面法向量的方法?这里可以通过尝试顺时针和逆时针结合结果图来判断。下面简单介绍下怎样进行假设。

如何通过假设方法判断平面法向量的方向(这里是指三角面片):

首先,当然要有数据,就是原始数据中每个面片是由那三个顶点组成。比如现在空间中有一个三角形平面由三个顶点A,B,C组成。

接着,就会存在下面两种情况,如下图:

因此,我们在程序中只要反着试一次,就会得到我们的结果了。下面我给出我的部分代码已经效果图(斯坦福大学著名的bunny模型):

其中,A和B是后面要进行叉乘的两个向量,point1,point2,point3就是三角面片的三个顶点。

情况1:

[cpp] view plaincopyA[X] = point2[X] - point1[X]; A[Y] = point2[Y] - point1[Y]; A[Z] = point2[Z] - point1[Z]; B[X] = point1[X] - point3[X]; B[Y] = point1[Y] - point3[Y]; B[Z] = point1[Z] - point3[Z]; 解决opengl计算顶点法向量问题(opengl函数)

情况2:

[cpp] view plaincopy<span style="color:#;">A[X] = point3[X] - point1[X]; A[Y] = point3[Y] - point1[Y]; A[Z] = point3[Z] - point1[Z]; B[X] = point1[X] - point2[X]; B[Y] = point1[Y] - point2[Y]; B[Z] = point1[Z] - point2[Z];</span>

从上面两种情况可以看出,它们确实是相反的。自己再实际操作的时候可以去尝试一下。

计算顶点法向量的过程记录:

首先,我们要了解几个概念,平面法向量(平面上两个不平行,不共线的向量叉乘得到),顶点法向量(以这个点为顶点的所有三角形的法向量之和)。

接着,我们就可以通过三个顶点求得两个向量,两个向量叉乘得到平面法向量。(平面法向量进行归一化)

然后,统计每个顶点的所有平面法向量之和。(顶点法向量进行归一化)

bunny数据文件下载链接

bunny数据包含顶点数据和顶点法向量数据链接

&#;&#;第一个连接是bunny模型的几种数据&#;式文件,第二个链接是一个包含bunny模型的顶点数据和已经计算出的顶点法向量数据。大家可以自己利用顶点数据计算顶点法向量,然后和该文件中的顶点法向量进行比对,来验证自己写的计算顶点法向量程序的正确与否。原文链接:

MipMap的LOD实现原理 当使用MipMap时我们可能会遇到tex2D,tex2Dbias,tex2Dgrad,tex2Dlod几种纹理采样函数。在PS中tex2D自动计算应该使用的纹理层。tex2Dbias需要在t.w中指定一个偏移

学习笔记一 画一个三矩形1,生成vertexbuffer//三角形顶点信息staticconstGLfloatg_vertex_buffer_data[]={-1.0f/2,-1.0f/2,0.0f,1.0f/2,-1.0f/2,0.0f,1.0f/2,1.0f/2,0.0f,-1.0f/2,1.0f/2,0.0f};//vb的标识

Android Framework基础一 简介之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了。记录1、下载源码,目录如下:2、Android系统的层次如

标签: opengl函数

本文链接地址:https://www.jiuchutong.com/biancheng/369473.html 转载请保留说明!

上一篇:OpenGL Tips: 在Visual C++中调用FreeGLUT

下一篇:MipMap的LOD实现原理(mmap实现原理)

  • 非盈利组织确认及所得税汇算怎么做
  • 车船使用税代扣怎么计算
  • 个体工商户个税怎么申报
  • 专项附加扣除可以随时填报吗
  • 税款所属期什么意思
  • 应付职工薪酬的一级科目
  • 凭证可以部分冲销吗
  • 预缴企业所得税额怎么算
  • 委托发行股票会亏本吗
  • 电子商务平台怎么下载中标通知书
  • 工资薪金支出账载金额小于实际发生额
  • 接受捐赠物品的增值税
  • 个体工商户给员工交社保属于职工社保吗
  • 工会经费该怎么交
  • 单位缴纳工会经费的会计分录怎么做
  • 长期待摊费用摊销明细表
  • 股东退股资金如何返还
  • linux命令“ln file1 file2”的含义是
  • 官网下载的iso怎么用u盘安装
  • windows11搜索
  • macbook怎么安装macos
  • 外籍人员个人所得税政策2023规定
  • dcom进程
  • 很有意思的一段话
  • 固定资产的折旧怎么算
  • 退货时会计分录的银行存款能是负数吗
  • 实收资本明细账模板
  • php unicode
  • 代开增值税额与实际缴款额差一分钱如何入账
  • gpt 中文
  • 前端数据导出为excel
  • php中preg_replace_callback函数简单用法示例
  • 经营租赁业务会计账务处理
  • 在建工程怎么做账务处理
  • 织梦cms怎么样
  • 跨月已计入费用后收到发票
  • 疫情期间餐饮发票税点
  • 私募基金怎么运作
  • 计提所得税后再结转本年利润吗
  • 本年利润怎么结转成未分配利润
  • 扣交社保会计分录
  • 交付使用资产是否含税
  • 当月进项票没有开进来
  • 事业单位其他应付款核销分录
  • 专项应付款在借方
  • 应付职工薪酬工作流程
  • 应收帐款收不回来怎么做会计分录
  • 残疾人就业保障金上年职工工资总额
  • 速动比率特别高的原因
  • 伤病假条
  • sql多表连接查询效率
  • win8系统怎么查看隐藏文件
  • win2008 R2 与SP1 PS2无法安装操作系统补丁的解决办法
  • ssh连接虚拟机centos
  • Centos安装dig命令
  • solaris删除文件夹命令
  • u盘里装pe系统
  • apache2 rewrite
  • searchnav.exe - searchnav是什么进程 有什么用
  • windows7如何开启游戏模式
  • windows1020h2更新失败
  • win8的桌面文件在哪里
  • osg uniform
  • 照片墙安装教程
  • android opengl绘图
  • react native usestate
  • 深入理解计算机系统
  • jQuery select自动选中功能实现方法分析
  • 关于减肥的好方法
  • Android Http访问网络 学习(慕课网学习)
  • android 保存密码
  • 基于JAVASCRIPT实现的可视化工具是
  • android内存占用分析
  • jquery编写页面载入事件
  • 发票税务抽奖怎么操作
  • 汽车购置税退税需要多长时间
  • 国税局发票打印软件下载
  • 厦门地税电话客服电话
  • 一巩固三衔接
  • 绍兴柯桥有哪些村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设