两年多前我需要解决uv重叠的问题,当时觉得是一个挺有挑战的问题,很兴奋。
为什么兴奋?因为对于当时的我来说还是很难实现的,第一眼看到这个问题,就不停的问自己这么解决。
当然第一步就是分析uv,uv是模型的2d投影,它只是一堆2d数据,不像多边形有线、面,最多只有点而已。所以一开始看上面的图时没任何思绪。
那我们换一种视觉显示
第一眼的差距只是没了填充色而已,再分析,如果我们假设它有边,就像上面显示的一样,那我们就能发现有两个相交点
这意味着如果我们能找到一个交点,那它就是重叠的,继续分析,如果我们把这几条边独立出来
这就清晰多了,我们可以看到P0P1分别跟PSP2、PSP3都有一个交点,而P0P1、PSP2、PSP3都是线段,于是我的出了解决方案:判断两条线段是否相交的算法,就是我解决这个问题的算法。于是马上问google,然后开始写代码。
但是这真的就这么简单吗?
当我实现了判断两条线段是否相交的算法后,发现没这么简单。
我们先来看最简单的四边面
如果我们对它使用判断两条线段是否相交的算法,就会得到所有4个点
这很明显不是我需要的结果,我需要的结果应该是这样的
所以我还需要去解决除去共同点边的问题,如果两条边有一个共同点就应该忽略。具体怎么实现的我已经不记得了,因为当我完成了之后做了点测试发现能正常工作就提交了。直到好几个月后一同事跟我说还是有共同点边的问题的bug存在,他还对我说要么我修复这个bug,要么去把maya提供的插件范例里面的一个插件用python API重写一遍(这个范例是C++写的,因为他看不懂Maya API,可是他却知道里面有个做类似的事情的范例,我至今也不知道他是怎么知道的),我果断的把那个范例用python API写了一遍,而且使用的是C++的代码模式。问题解决。
(为什么要用C++的代码模式,我的理由有两个,第一是大部分的代码都是直接搬过来,为了防止出现隐藏的bug,以及加快代码写编写速度;第二是为了方便同事学习API,如果他们有兴趣的话就可以通过对比两个版本的区别来学习Maya API,因为所有的函数名称、参数变量都一样,基本上就是把语法改了一下,其它基本一致)
感兴趣的可以看看Python API 2.0的版本
uvOverlap.py
https://github.com/mackst/myRandomStuff
- 大小: 82.2 KB
- 大小: 78.8 KB
- 大小: 78.1 KB
- 大小: 82.2 KB
- 大小: 72.7 KB
- 大小: 75.3 KB
- 大小: 79.6 KB
分享到:
相关推荐
前端开源库-file-overlap文件重叠,获取两个文件路径的重叠部分
重叠的定义已被修改以解释联系。没有这个,带有绑定项目的列表的结果就会被夸大。论文中没有提到修改本身,但似乎是合理的,请参阅 function overlap()。因此,代码中与论文中的规范不同的地方会用注释突出显示...
计算椭圆方程的jacobi迭代,边界采用的是多层网格重叠,从而减少迭代次数。
数字语音信号处理中重叠相加法的matlab文件,用于编写帧合并的函数。
overlap2d-runtime-libgdx, Overlap2D用户界面和级别编辑器libgdx运行时 ## overlap2d-runtime-libgdx使用overlap2d-runtime-libgdx提供加载,操作和渲染场景的功能由 Overlap2D编辑器生成。 libGDX项目一起使用。 ...
自己编写的短时傅里叶变换,可加窗,调整重叠率。
检查两个短语或句子之间重叠的单词数 用于检查两个标题/句子/词组是否指代相同上下文的情况。 例如2个事件名称。 ##安装 与 npm install word - overlap 与 在文件main.js // in main.js var overlap = ...
一个使用 FFT 实现重叠和保存方法的简单文件。 样本数据(音乐、随机数、正弦波)用于证明该方法有效。 Overlap 和 Save 方法的结果与 Matlab 的线性过滤(filter(b,a,x))进行了比较。 我将文件修改为一个函数,...
Overlap2D helps you create content for your game without connecting it to a specific code. As a result your game content is hugely framework/engine and everything independent. This documentation ...
基于 生物 信息学 大文件的处理,寻找 两个文件 中overlap 部分
Overlap2D 是一个 2D 游戏的 UI 编辑器。理想是支持所有的 2D 游戏引擎,但是目前只支持 libGDX. 开发人员使用它能够使用图像、动画、粒子效果、光系统、物理和复杂的分组项目来创建丰富的内容。 标签:...
不规则形状、高度重叠、大量粘连的目标分割,耗时比神经网络少很多,更适合工业应用。放了部分代码和实现原理,即可根据原理实现。附上我的结果图。
基于Bert+overlap_split分段+门控卷积网络的长文本分类源码(解决长距离依赖问题).zip基于Bert+overlap_split分段+门控卷积网络的长文本分类源码(解决长距离依赖问题).zip基于Bert+overlap_split分段+门控卷积网络的...
libgdx游戏ui编辑器的学习教程。通过本教程的学习,您可掌握对ui控件button的编辑及使用。
简单计算矩形的重叠率,通过提供俩矩形对角线的俩个点的坐标来计算。适合重叠区域也为矩形的,其中重叠率的计算与通常计算不同。
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:overlap_save-1.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
可以将一张图片的某部分覆盖到另一张图片上,完成背景替换
Learning the quantum algorithm for state overlap.pdf文件
demgen_overlap 世代重叠的种群进化进化救援