位置: 编程技术 - 正文

解决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实现原理)

  • 财产租赁所得怎么计算个人所得税
  • 城建税是什么税率
  • 留抵退税手续
  • 购买厂房需要交土地使用税吗
  • 小规模纳税人企业购进货物和接受应税劳务时
  • 发票代码和发票号码是什么
  • 股权评估与资产评估的关系
  • 未确认收入可以开发票吗
  • 库存现金存入银行怎么记账
  • 销售单位收入和支出要怎么做账?
  • 机动车发票抵扣联有什么用
  • 异地承包工程预缴什么税?
  • 取得抵债房产的涉税风险,你清楚吗?
  • 无租房合同可以取住房公积金吗
  • 未达起征点的个体户个人所得税
  • 零申报资产总额填注册资本怎么办呢
  • 工会会费可以一年交两个单位吗
  • 挂靠别人的资质进行房屋建筑会计怎样做账?
  • 销售收入大于纳税申报销售收入
  • 小规模纳税人一个月能开多少税票
  • 购入空调
  • 冲未开票收入怎么做分录
  • windows7便签删除了怎么恢复
  • win11怎么录屏游戏
  • 电脑机箱前面耳机的WIN10系统没有声音怎么办
  • 怎么修改wifi密码视频教程
  • 外购的福利费要转出吗
  • 微信支付宝转账最新规定
  • win10开始菜单设置无效
  • 其他货币资金明细账填写样本
  • 转让应收账款会计分录
  • php通用分页类
  • 开办分公司
  • 营业外收入合理避税
  • vue3使用高德地图
  • ts和js混用
  • axios请求数据的数据类型
  • vue组件通信方法
  • 员工福利费会计分录 最新
  • 企业处置固定资产发生的净损失应计入
  • 以前年度的成本忘了结转然后怎么办
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • 上月附加税计提多了怎么办
  • 预存电费余额怎么突然多了
  • 普通发票网络服务系统
  • 政府给的补偿款怎么做账
  • 税务登记后要马上报税吗
  • 上个月开的票这个月能用吗
  • 简易办法征收增值税是什么意思
  • 其他权益工具账面价值和公允价值
  • 正数折扣发票
  • 固定资产当月入账当月计提吗
  • 原材料用于在建工程进项税可以抵扣吗
  • 会议费报销时应当提供哪些材料
  • 金三税务系统怎样修改财务人员跟办税人?
  • 费用摊销怎么做分录
  • 旧设备投资的账务处理
  • 企业会计准则规定,企业在对会计要素
  • 领购发票的方式有哪些
  • linux 的ll
  • win10系统怎么修改用户名称
  • 什么是活动目录和域
  • linux关闭进程kill
  • dwm.exe占用内存过高怎么办
  • 老电脑安装win7还是win8
  • win8 设置
  • win 7怎么办
  • Coroutine couldn't be started because the the game object 'GameController' is inactive!
  • CCProgressTimer 进度条动画在cocos2dx+lua中的使用
  • 第三章之一、使用二手设备降低生产成本读后感
  • node. js教程
  • javascript ()
  • 浅蓝色html代码
  • jquery中的动画方法有哪些
  • sqlyog使用
  • 运输费属于什么会计分录
  • 河南省地方税务局公告2017年第4号
  • 如何开具红字发票明细
  • sp海淘3档到国内什么快递
  • 可以去税务局交医社保吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设