
三维造型
ryfdizuo
腾讯专家开发工程师(T12/T4-1) Live Long And Prosper.
展开
-
OpenGL圆柱面绘制贴图
最近看到dx中的sample中有用顶点数组实现的圆柱体贴图的程序。于是自己写了一个圆柱体的类,支持生成纹理坐标,法线,坐标。构造圆柱体的参数主要有:水平分段数(就是上下圆的分段数目),高度上的分段数目,(至少有两段:上下两个圆面)半径,高度。顶点生成的原理:将圆柱面展开就是一个矩形。而纹理也是一个矩形区域,需要注意的是圆柱面是一个首尾相接的封闭面。效果图如下:原创 2009-12-02 18:21:00 · 11127 阅读 · 8 评论 -
OpenGL绘制矢量路径的思路
1. 引言软件方法绘制,如QT、Android(skia)都自带2D绘图引擎,支持矢量路径填充并且抗锯齿!如果使用OpenGL绘制矢量,对建模算法以及纹理都有要求,不同的建模算法决定了最终的视觉效果。OpenGL绘制路径,抗锯齿效果由纹理来实现。下面介绍两种不同效果的路径实现和绘制:2. 纯色圆角路径通过纹理方式实现抗锯齿单色路径绘制。建模算法非常简单:将一个polyline分解成原创 2013-08-05 10:17:46 · 8144 阅读 · 4 评论 -
基于csg的布尔运算
速度有点慢~第一行: cube cone cube Union cone第二行:cubeSubtractconecube Intersection cone代码下载: add - 2011-6-18 RYFhttp://download.youkuaiyun.com/source/3375594本文是内存中对模型进原创 2010-06-20 15:02:00 · 5075 阅读 · 2 评论 -
基于OpenGL的角色动画实现
我的本科毕设做的是一个BVH文件解析,角色关节也是一个多叉树,层次变换树。孩子节点依赖于结点的变换。上图中的角色以躯干Torso为根节点,脖子和头属于一个子树;左右手臂、左右腿分别属于四个子树,所以上图是一个五叉层次变换树。尤其强调的是手臂支持三个维度的运动,所以需要需要增加x,y,z的三层虚节点。右手臂的子树为:Torso/RShoulderX / RShoulderY/RShoulderZ原创 2012-03-19 12:57:23 · 8591 阅读 · 7 评论 -
坐标系的显示
正常状态显示: x轴被激活的时候:预期效果:选择坐标轴实现选中面的缩放和拉出操作选择坐标面上的圆弧对面进行旋转用VL写的,关键代码如下:// add the geometries to the VLs pipeline...void App_Axis::showAxis(){ //basic render states vl::r原创 2010-05-06 13:35:00 · 1849 阅读 · 0 评论 -
QEasingCurve的绘制
QEasingCurve的介绍链接:http://doc.qt.io/qt-5/qeasingcurve.html把QT中QEasingCurve组件提取出来,在glut中实现了绘制。QEasingCurve中支持四十多种曲线,而且代码也相对独立。提取出来不是特别难。效果如图: 代码如下:#include < vector > #include < GL / glut.h &g...原创 2010-04-28 21:30:00 · 6409 阅读 · 0 评论 -
loft【挤出体】
代码下载:http://download.youkuaiyun.com/source/2702101原创 2010-04-13 20:01:00 · 1146 阅读 · 0 评论 -
三角形分割的法线问题
对三角形进行分割,情况比较复杂。首先,用平面去切割三角形,主要有四种情况:切割面经过,一个顶点 & 该顶点的对边切割面只经过一个顶点 切割平面只经过三角形的一条边(即经过三角形的两个顶点)切割平面经过三角形的两条边需要对三角形分割的,只有1,4两种情况。不管这两种的哪一种情形,都要注意一个三角形的顶点顺序问题,即三角面片的法向问题。分割出的子三角面片法向必须与原原创 2010-03-09 20:45:00 · 3057 阅读 · 0 评论 -
求取模型的三维凸包问题
三维凸包最经典的算法是:增量法。在这本书:"Computational Geometry in C" (Second Edition) by Joseph ORourke., 中文名《计算几何》这本书中有完整的增量法求取凸包的代码。下载的地址:http://maven.smith.edu/~orourke/books/ftp.html 我这里想说明的是,那本书中给出的代码原创 2010-03-09 20:13:00 · 2792 阅读 · 1 评论 -
一些细节问题
都是一些最基本的问题,但是代码量大了以后,就容易忽略:1,使用了c语言中的malloc,最后释放指针使用了自定义的SAFE_DELETE_PTR宏。#define SAFE_DELETE_PTR(P) { if(p) { delete p; p = 0; } } 2,浮点数的比较问题。为了提高运算速度,将float转化为大整数参与运算,然后再转化成浮点数,损失了精度。当前后两种原创 2010-03-12 14:17:00 · 1174 阅读 · 0 评论 -
求平面切割三角形的交线
算法还不太全面,下面只是一种最常见的相交情形:bool intersect_PlaneTriangle(const gtl::Vec3f& triVert0, const gtl::Vec3f& triVert1, const gtl::Vec3f& triVert2, const gtl::Vec3f& planeVert0,原创 2010-02-25 21:08:00 · 3642 阅读 · 0 评论 -
纹理映射函数
/******************************************************************************* FUNCTION** INPUT** OUTPUT** RETURNS** AUTHOR** DESCRIPTION** Map a point (x, y, z) on转载 2009-12-15 10:17:00 · 2292 阅读 · 0 评论 -
小型 [造型引擎] 的构想
主要是实现3dmax中的一些功能: 1,二维中基本元素:3dmax中的线条的绘制是bspline,前段时间实现了bezier curve的交互绘制(完全模仿corl draw中的bezier曲线绘制或者Photoshop中的钢笔路径绘制功能),有时间计划实现一下bspline交互绘制。 2,三维中基本元素: 3,二维到三维的转化:挤出 Extrude:原创 2009-12-02 18:53:00 · 2230 阅读 · 0 评论 -
3DMAX使用心得(2007-9-9)
3dmax 学习心得原创 2017-12-08 07:49:51 · 1225 阅读 · 0 评论