早教吧 育儿知识 作业答案 考试题库 百科 知识分享

自己写的顶点法线计算器,传入顶点和索引数组,结果存放在传入的法线数组中.基本思路是按顶点编号遍历,看索引中如果有相同的顶点,就计算所在三角形的面法向量,最后把所有共面法向量相

题目详情
自己写的顶点法线计算器,
传入顶点和索引数组,结果存放在传入的法线数组中.基本思路是按顶点编号遍历,看索引中如果有相同的顶点,就计算所在三角形的面法向量,最后把所有共面法向量相加求平均.因为看过一个资料说法向量和面积成正比所以没有normalize.但是结果却很不理想,float[] vertices = {...};short[] indices = {...};float[] normals = new float[vertices.length];// 存放normals的数组,大小与顶点数组一致private void prepareNormals(float[] vertices,short[] indices,float[] normals) { int numofIndices = indices.length;// 索引数 int numofVertices = vertices.length / 3;// 顶点数量 int numofTriangles = numofIndices / 3;// mesh的三角形数量 int temp0,temp1,temp2,numofPlane; // 3个临时变量等下做数组下标减少计算量 float px,py,pz,qx,qy,qz;// 用于计算单位三角形面法线的两个向量 for (int i = 0; i < numofVertices; i++) { numofPlane = 0;//重置共面数量 for (int j = 0; j < numofTriangles; j++) { temp0 = j * 3; temp1 = j * 3 + 1; temp2 = j * 3 + 2; if (indices[temp0] == i || indices[temp1] == i || indices[temp2] == i) { numofPlane++;//如果找到,共面+1 px = vertices[indices[temp1] * 3] - vertices[indices[temp0] * 3]; py = vertices[indices[temp1] * 3 + 1] - vertices[indices[temp0] * 3 + 1]; pz = vertices[indices[temp1] * 3 + 2] - vertices[indices[temp0] * 3 + 2]; qx = vertices[indices[temp2] * 3] - vertices[indices[temp0] * 3]; qy = vertices[indices[temp2] * 3 + 1] - vertices[indices[temp0] * 3 + 1]; qz = vertices[indices[temp2] * 3 + 2] - vertices[indices[temp0] * 3 + 2]; normals[i] += py * qz - pz * qy; normals[i + 1] += pz * qy - px * pz; normals[i + 2] += px * qy - py * qx; } } normals[i] /= numofPlane; normals[i + 1] /= numofPlane; normals[i + 2] /= numofPlane; } }
▼优质解答
答案和解析
建议:1.设计一个合理的数据结构,方便计算,比如设计顶点的结构Point{顶点索引、邻接面等}2.计算每个顶点法线(简单的邻接面法线均值;邻接面法线根据面积均值;奇异面特殊处理的法线均值等)不过你的思路也没错,具体细节,我没看~ 查看原帖>>
看了 自己写的顶点法线计算器,传入...的网友还看了以下:

想问一个关于作文《我心中的桃花源》的问题我打算写一个作文,全文以悠扬的歌声为线索(歌声让我进入桃花  2020-05-02 …

记叙文的四个线索1.以中心____________为线索 2.以时间____________为线索  2020-05-17 …

线索是要怎么贯穿全文举具体文章说明:1.到底怎样才是线索2.怎样算贯穿全文就这样  2020-05-17 …

1.叙事文叙文有哪六要素2.叙事要有线索,要有事情发展的脉络。一般可以按以下四种方法安排叙事的线索  2020-06-19 …

请教一道关于线索二叉树的问题二叉树在线索化后,仍不能有效求解的问题是(D)。A.先序线索二叉树中求  2020-06-25 …

语文问题《卖油翁》如果以陈尧咨悳变化伟线索分析故事情节可分为:()()()()——忿然质问——()  2020-07-03 …

关于“伏笔”和“线索”的问题网上对“线索”的解释有一条是伏笔可以理解为前文为下文埋下的线索.1.那  2020-07-15 …

多项选择6、记叙文中,文章线索的安排通常有以下几种形式:A、以主题为线索.B、以人物为线索.C、以  2020-07-25 …

根据课文给下列各题选择正确答案本文的线索是[]A.以卢进勇的遭遇为线索B.以无名战士的活动为线索C.  2020-12-05 …

《斜塔上的实验》这一课是不是按照时间线索来梳理文章的?如果不是,请你来说文章先写了啥?后写了啥?《斜  2021-01-12 …