自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (10)
  • 收藏
  • 关注

原创 【图形学】Loop细分算法及半边结构实现(C++)

文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用Loop 细分顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。下面是一个粗糙的兔子模型1000个面,进行3次细分算法介绍Loop细分算法主要分两步进行增加新顶点:增加

2020-10-18 18:14:06 6853 5

原创 [图形学]拉普拉斯网格变形(Laplace Deformation)原理及复现

本文原理参考论文: Laplacian Mesh Processing本文复现参考:Mesh模型的Laplace Deformation(网格形变 - 拉普拉斯形变) - C++代码实现文章目录拉普拉斯网格变形原理拉普拉斯坐标拉普拉斯矩阵原理分析添加锚点求解形变后的坐标拉普拉斯网格变形是一个相当经典的工作,本工作复现了一下基础的部分,这里记录下原理部分和结果。复现结果演示如下:拉普...

2019-12-05 18:19:10 9706 9

原创 【图形学】基于点云生成树木模型

很久之前就想尝试有关于点云方面的知识,但是一直耽搁到现在,一方面感觉很难不知道如何下手。最近看了师兄发来的论文后,我发现基于点云生成树木模型也并没有想象中那么难。参考论文:Knowledge and Heuristic Based Modeling of Laser-Scanned Trees.Hui Xu,Nathan Gossett,Baoquan Chen.参考博客:https:...

2019-03-03 20:50:00 10068 35

原创 [图形学]3D树的建模方法

在游戏设计、电影和城市规划领域,3D树的建模在虚拟场景中占了很重要的角色。所以如何快速建立真实的3D树就是一个很重要的的课题。关于3D树的建立存在很多经典的方法,典型的方法是利用L-system建模,使用参数化方法操作复杂的参数,这个方法擅长描述植物特性不同的物种,但是这种方法需要一定的专业知识而且只能控制局部特征,并不能控制整体的特征。另一方面,L系统与环境缺少交互作用,因为植物的生长是一件...

2018-05-29 17:23:40 7684 1

原创 【图形学】网格简化及边坍缩( Edge Collapse )算法

本文简要介绍了网格简化的基础及意义,重点介绍了边坍缩(Edge Collapse)算法以及具体实现细节。

2020-12-27 16:52:29 8694 5

原创 Hololens(1 代) 入门以及研究模式的避雷指南

HoloLens是微软公司开发的一种混合现实的头戴显示器,可以通过这个做一些混合现实的工作。最近想使用Hololens做一些东西,所以入了Hololens的坑,在这里记录一下自己研究使用hololens的参考资料和自己遇到的坑,其中不会涉及非常细节的部分,但是会讲述在配置环境或者开发中可能遇到的问题。如果你是想在Unity开发环境中使用Hololens的传感器数据,可以直接参考本文的第二部分。文章目录一、入门1. 配置环境2. 使用Unity开发官方教程:Unity入门MR Basics 101教程二、使

2020-09-25 10:34:21 2066 3

原创 [软件] PointPicker 选取模型上的点并保存

最近想拾取一个模型上的点的坐标并保存下来,正好实现一下简单的点云拾取操作。

2019-11-26 21:29:14 920 3

原创 vcglib库的入坑体验(读取obj文件并显示)

写在前面:vcglib的坑真的是太深了,慎入!!! 各种文档不全,使用全靠看源码和猜,网上资料很少而且基本都是复制粘贴,有用的信息真的很少!(附上vcglib的文档 真的能看到自闭)本文使用vcglib库进行读取obj文件(其他各种3d模型格式也是同样的方法)并显示,但是目前仍然遇到一些问题没有解决:读取的纹理信息全部缺失(读出来全部为0,因此下图并没有贴纹理),查了很久真心不知道为什么,如果有...

2019-11-24 20:50:59 4279 4

原创 [算法] 从简入深理解动态规划

动态规划(dynamic programming)本文总结于UCAS的卜东波老师的计算机算法设计与分析课程中的动态规划一讲文章目录动态规划(dynamic programming)矩阵链乘问题问题描述基本分析思路伪代码(第一版)时间复杂度分析优化时间复杂度方案伪代码(第二版)回溯求解最优解计算顺序伪代码(第三版)动态规划总结额外解法(复杂度O(nlogn) )在说动态规划之前先看一下它和...

2019-10-21 08:26:38 245

原创 【QT】Qt更改项目名称

QT更改项目名称qt不能直接重命名项目名,但是也可以通过稍微复杂一点的步骤更改项目名称请按照以下几个小步骤,分分钟解决问题:xxx为原始项目名称首先清理项目xxx然后更改项目中xxx.pro文件的TARGET =xxx为TARGET =newProject_fname关闭项目打开项目所在文件夹删除xxx.pro.user文件将文件夹中的xxx.pro文件更改为newProjec...

2019-10-10 10:23:20 1116

原创 【深度学习】生成式对抗网络(GAN)系列

近几年已经见证了深度神经网络在各个领域的巨大能力。 深度神经网络已经成为许多问题背后的常见解决方案,特别是对于与图像相关的难题。 具体而言,基于GAN的方法在一系列图像生成问题上表现出极好的性能。 更具体地说,对于基于指导的图像生成,与传统的深度学习方法相比,GAN展示出显着的成就。一、生成式对抗网络(GAN)1. 网络结构:GAN的主要灵感来源于博弈论的思想,生成对抗网络的出现对无...

2019-04-01 14:08:29 2116

原创 【深度学习】零基础理解NN和CNN

作为一个十余年来快速发展的领域,深度学习越来越火了。深度学习善于从原始输入数据中挖掘越来越抽象的特征表示,而这些表示具有良好的泛化能力.它克服了过去人工智能中被认为难以解决的一些问题.且随着训练数据集数量的显著增长以及芯片处理能力的剧增,它在目标检测和计算机视觉、自然语言处理、语音识别和语义分析等领域成效卓然,因此也促进了人工智能的发展。本文主要介绍深度学习中NN(神经网络)和CNN(卷积神经...

2019-03-23 15:19:34 11572 1

原创 【Keras】 基于GAN自动生成动漫头像

最近在学深度学习,了解到了GAN,不得不说,GAN真的是一个神奇的工作。做这个的理由也是因为看了李宏毅老师的课程,这就是其中的一个课后作业——利用GAN生成动漫头像(这个也太酷了吧,燃烧中二之魂~)。...

2019-03-17 13:26:41 13341 25

原创 【OpenGL】阴影映射实现实时阴影

完整代码已上传:https://github.com/kaiwu119/BallFreeFallAnimation阴影是光线被物体遮挡而产生的,当光线照射不到物体表面时,这个物体就处于阴影中了, 阴影的存在可以让场景更加真实,而且更容易分辨出物体的相对位置。现在有很多阴影的实现方法,但是都不是那么容易实现的,而阴影映射是比较容易实现的,这次主要介绍阴影映射实现实时阴影,下面先看效果图:...

2019-03-08 15:38:25 5683

原创 [图形学]Delaunay三角剖分算法附C++实现

完整代码已上传:点击此处将离散点构成三角网,这种三角网称为Delaunay三角网Delaunay剖分具备的优异特性有(来自百度百科):1.最接近:以最近的三点形成三角形,且各线段(三角形的边)皆不相交。2.唯一性:不论从区域何处开始构建,最终都将得到一致的结果。3.最优性:任意两个相邻三角形形成的凸四边形的对角线如果可以互换的话,那么两个三角形六个内角中最小的角度不会变大。...

2018-08-15 19:58:29 18076 9

原创 [个人心得]推免之心路历程

在此记录一下我的艰苦的推免历程,也希望能对后来的人有些帮助吧,希望能把这种精神传递下去。我的基本情况:西北农林科技大学、软件工程专业、专业排名 2/99、通过六级、参与一个省级科创、获得一次国奖、美赛M奖以及几个程序竞赛奖项。一、前期准备在大概四月到五月份,各个学校夏令营的政策相继出台。那个时候需要对自己进行一个定位并开始准备材料。大家可以提前关注保研论坛。这里会搜集各个学校的保...

2018-08-05 19:16:36 5164 33

原创 [图形学]凸包生成算法附C++实现

凸包(Convex Hull)是一个计算几何(图形学)中的概念,简单的来说就是对于一个给定的点集,我们需要求得一个凸多边形把给定的点集全部包含起来。先附上我的结果:如上图可以看到用绿色的线连成的一个凸多边形,就是一个凸包,它包含点集中所有的点。一、算法流程1、求出点集中满足min(x-y)、min(x+y)、max(x-y)、max(x+y)的四个点,并按逆时针(或者顺时针)方...

2018-08-05 17:16:18 7878 6

原创 [Python]linux环境下使用Django框架创建网页

一、环境搭建使用python工具pip,是python的软件包管理器安装pipsudo apt install python-pip  (python2)sudo apt install python3-pip (python3)使用pip3安装需要用的包:            sudo pip3 install pymysql==0.7.11            sudo pip3 inst...

2018-06-13 16:50:10 1233

原创 [图形学]仿制Minecraft游戏(柏林噪声生成地形)

最近在整理之前做过的东西,之前的制作了一个简易版的《Minecraft》的游戏,当时是看一个学长的博客,感觉很有趣。那时第一次了解到柏林噪声(Perlin Noise),下面介绍一下我对这个游戏的总结。    先附上我的游戏截图:1. 地形的生成采用的柏林噪声生成地形,关于柏林噪声的相关概念下面的博客已经说得很清楚了 [数学]柏林噪声 :http://www.cnblogs...

2018-05-31 20:27:14 7185 5

原创 几何着色器(三)爆破和腐蚀效果

几何着色器的功能是很强大的,我们可以借用几何着色器的丢弃图元的特性实现腐蚀效果。我们也可以通过改变图元从而实现物体的爆破效果。因为几何着色器是GPU跑的,所以很大的提升了运行效率,从而实现实时的动画效果也是毫不费力的,下面的例子是采用了150万个点渲染的一个地形;先看效果图(动态图可能有些卡):腐蚀效果:爆破效果:          如果你之前已经看过我写的实现表面法线...

2018-05-19 15:06:18 1353

原创 几何着色器(二) 表面法线可视化

从之前的介绍,我们已经了解了几何着色器的基本知识,现在介绍一下如何用几何着色器实现表面法线的可视化如果是第一次了解几何着色器,可以先了解基本知识:几何着色器(一)效果图:首先我们先了解一下绘制流程:    1.激活顶点着色器和片元着色器    2.正常绘制模型    3.激活顶点、几何、片元着色器    4.绘制法线    也就是说我们要绘制两次 着...

2018-05-19 11:30:46 1820

原创 几何着色器(一) 基本概念

最近想做一些渲染的东西,接触到了几何着色器,发现了几何着色器的强大之处,几何着色器位于顶点和片元着色器之间,几何着色器能够产生0个以上的基础图元,它能起到一定的裁剪作用、同时也能产生比顶点着色器输入更多的基础图元。它可以做的事情非常的酷炫,例如:表面法线的可视化和实现三维物体的爆炸效果。 基本知识: 输入可以有如下:points:绘制GL_POINTS图元时。 lines...

2018-05-18 18:19:37 7878

原创 解决“error: undefined reference to `_imp__gl*@8'”

因为在新版本中的qt已经不支持QGLWidget了,使用的时候会报错:如“error: undefined reference to `_imp__glBindTexture@8'”因为新版本的qt+opengl主要是对可编程管线比较友好,但是难道我们就不能在高版本qt中运行我们原先的代码么,答案是否定的,其实很简单,只需要在.pro文件中添加以下两行即可:LIBS += -lopengl32\ ...

2018-05-17 16:02:05 8428 2

原创 [图形学] 模拟小球自由落体

完整代码链接:https://github.com/kaiwu119/BallFreeFallAnimation计算机动画经常用于描述一些自然界的物理运动, 本文介绍如何实现动态过程的模拟。演示程序:https://download.csdn.net/download/qq_31804159/10390092效果如下图:对于一个自由落体,大家都清楚计算公式,这里不再叙述。我们...

2018-05-03 17:26:47 3280 3

原创 [OpenGL]绘制透明物体

本文主要介绍如何在opengl绘制一个透明物体,实现混合效果效果图如下: 可以看出这个龙是处于一个透明的包围盒中的。下面我介绍实现方法:1.打开opengl的混合功能glEnable(GL_BLEND);2.设置混合函数 glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);3.设置深度深度缓冲区为只读 ...

2018-05-03 14:58:04 5678 1

原创 [GLSL]法线贴图(Normal mapping)原理及实现

前一段时间了解到一个技术叫法线贴图,感觉这是一个很有意思的东西,所以我尝试去实现了一下,虽然网上有很多资料了,但在这里还是记录一下我的实现过程。演示程序已上传:https://download.csdn.net/download/qq_31804159/10372916 感兴趣的同学可以下载玩一下首先附上我的实现结果: 左上为原图,左下为得到的法线图,中右图是法线贴图效果。...

2018-05-01 17:40:11 7551 3

原创 [图形学]基于平面方程的阴影计算

一个三维物体绘制出来之后,打上光照就很具有真实感了,但是如果一个物体没有影子,那么是一个很可怕的事情。那么我们如何把一个物体的影子加上呢,本文会介绍一种方法,可以让三维物体的影子投影到指定的平面上。如何绘制下面的花瓶可以参考我的另一个文章:opengl绘制花瓶程序演示链接:https://download.csdn.net/download/qq_31804159/10383046实现结果...

2018-04-29 17:35:19 2038

原创 [OpenGL]多视角漫游

我们绘制完一个模型之后,尴尬的是每次运行只能看到模型的一面,这样显然是极为不方便的,那我们如何能够像游戏中那样对一个模型进行多视角观察呢。现在我给大家描述一下原理:想象一下,如果我们把我们的眼睛放在一个球面上,把物体放在球心上,那么我们无论把我们的眼睛放在球面的哪个位置我们都是可以观察到模型的,而且根据位置的不同我们观察到模型也不同。下面具体说明实现方法:    1.构建一个球面 ...

2018-04-28 21:53:48 1045

原创 [OpenGL]导入obj文件

通常来说我们构建一个模型是比较复杂的工作,那么我们还有什么途径获得模型呢。其中一种方法就是导入obj模型,不要被这个名词给吓到了,其实就是把一个制作好的模型保存到一个文件中,我们称为obj文件。先上图片:下面说明如何读取单个obj文件: 我们先了解一下obj文件里都是表示什么v 表示点的坐标值vt表示纹理贴图坐标值vn表示点的法线f 表示的是面,本例中针对的...

2018-04-26 23:17:33 5839 5

原创 [图像处理]sobel算子边缘检测算法

我的程序效果: 边缘检测算法是图像处理中最为基本的问题。其目的是标志图像出亮度变化明显的点,从而反映出图像中重要变化。 先介绍一下Sobel算子:Sobel 算子是像素图像边缘检测中最重要的算子之一,该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如下图,Gx和Gy分别是在横向及纵向的灰度偏导的近似值。(注:对于一...

2018-04-26 22:56:53 24948

原创 opengl绘制花瓶

本文阐述一种简单的绘制3D花瓶的方法,对于刚接触图形学的小伙伴而言是一个很好的练习题目。先附上我的结果: 下面阐述原理及我的实现:1.定义一个正弦函数f(y)f(y) = r*sin(y)+Rr和R用于控制花瓶半径2.让这个函数绕着y轴旋转,则我们可以得到一个曲面函数:x^2+z^2 = (r*sin(y)+R...

2018-04-25 20:19:00 6870

原创 [Qt]qt+opengl程序创建

在Qt中使用opengl在我看来比起使用glut库更为简单,因为不需要添加额外的其他文件。 本文主要介绍如何在Qt中使用opengl,具体步骤如下:1.创建一个工程项目选择基类为QWidget,完成建立工程2.更改.pro文件,添加语句 QT += opengl 3.在.h文件中添加几个主要的头文件#include <GL/gl.h>#...

2018-04-25 17:59:25 1274

原创 [GLSL]渲染大规模地形(多纹理)

演示程序已上传:https://download.csdn.net/download/qq_31804159/10383143从学习图形学开始,就想做一个关于地形方面的东西(因为看起来比较酷emmm),有一次机会了解到了基于高度图渲染地形。这是一个比较简单的方法,对新手而言比较友好的。其实这个是我好早之前做的一个东西了,但是算是真正进入图形学的一个标志吧,以后我会陆续的把我做的一些有意思的东...

2018-04-25 13:10:02 4773 2

kd-Tree源码(c++)

之前写的一个kd-tree,程序里用了一些qt的数据结构,基本不影响阅读。该程序仅供初学kd-tree的同学参考,

2019-03-01

Delaunay三角剖分演示

可显示四种结果:离散点、凸包、凸包剖分、Delaunay三角形 改变点数的数目:可以演示每次加点的过程 点击重置:打乱离散点,重新生成

2018-08-15

GPA5分制计算器

该程序可以帮助大家根据成绩和学分简易的计算出GPA 5分制的GPA成绩,支持文件的成绩文件的读取。使用详情请读readme.txt

2018-05-09

小球自由落体演示

程序模拟小球自由落体的运动的动态过程,可多视角观察。具体操作请读readme。

2018-05-03

基于高度图地形生成器

提供一个基于高度图的地形生成软件,可以直观的展示地图生成的效果,可以实现多纹理混合。

2018-04-29

opengl绘制花瓶源码(基于glut库 )

该代码提供了一个简单的方法绘制花瓶,源码具有参考性。

2018-04-29

opengl绘制花瓶(有影子)qt源码

该代码实现了3D花瓶的绘制,以及花瓶影子的生成,具有很好的参考作用

2018-04-29

opengl绘制花瓶演示

这是一个3D花瓶(有影子)的演示程序,在程序中可以多角度观察一个花瓶,可以漫游视角。

2018-04-29

本地Mp3播放器源码

这个是我大二时做的一个关于mp3播放器的课程设计,是基于Qt开发的,希望对感兴趣的同学有所帮助。

2018-04-25

法线贴图(Normal mapping)演示程序

一个基于Normal mapping的演示程序,里面有三个小例子,可以直观观察出Normal mapping的效果

2018-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除