自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

诗酒年华

且将新火试新茶,诗酒趁年华

  • 博客(13)
  • 收藏
  • 关注

原创 使用vcglib创建和输出模型

目录前言网格结构定义使用坐标和索引创建模型结果展示前言本文是对vcg库自带的示例进行学习,从而达到熟练使用该库的目的。网格结构定义使用vcglib定义网格结构非常简单,如果不考虑深入研究其内部实现的话。代码如下://mymesh.h#include<vcg/complex/complex.h>class myFace;class myVertex;class myUsedTypes:public vcg::UsedTypes<vcg::Use<myVertex&gt

2020-11-15 16:08:13 1589 3

原创 VCG库之分配和删除网格元素

vcg提供了一些行为安全的函数,可以为模型添加或删除元素。

2020-11-12 10:50:32 722

翻译 VCG库之如何定义网格类型

如何定义网格类型VCG库提供了几种编码网格的方式,但最常用的一种是顶点向量容器和三角形向量容器(如用于三角网格的三角形和用于四边形网格的四边形)。以下是一个VCG网格类型的定义:class MyMesh: public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> , std::vector<MyEdge> > {};其中,vcg::tri::TriMesh是定义三角网

2020-11-10 15:06:17 803

原创 回忆记录之C++智能指针

前言前天做完美世界的笔试,有一道和智能指针相关的题目,下来自己用编辑运行了一下,做错了,难过ing。智能指针智能指针,顾名思义,它是指针,但是比普通指针更优秀,因为它有“智能”。对于普通指针,动态申请堆内存后忘记释放,就会发生内存泄漏。而只能指针能够帮助管理动态内存,防止发生内存泄漏,这是因为智能指针借鉴了类的析构函数的思想。对于类来说,当该类的对象过期时,会自动调用其析构函数,释放资源。智能指针使用这一概念,使得智能指针在过期后,能够自动释放其占有的内存。因此,智能指针式行为类似于指针的类对象。智能

2020-09-26 23:36:57 115

原创 来一段网络协议复习记录

前言感觉自己是“天弃之子”啊,什么都做不好。哈哈哈哈,好吧,复习复习计算机网络咯~地址解析协议以太网协议规定,不同主机之间进行通信时,必须知道对方的MAC地址。根据OSI模型,数据从上层向下层再向上层进行流动传输。在源主机的网络层及之上,只关注目的主机的IP地址,故源主机的数据链路层收到的上层协议中也只包含了目的主机的IP地址。因此,需要根据此IP地址找出目标主机对应的MAC地址——ARP地址解析协议。ARP协议的工作流程是源主机在自己的ARP列表中查找是否有相应的IP地址,如果有,则取出该IP对应

2020-09-13 19:52:44 87

翻译 Blender之“元球”问题探讨

前言一直不理解隐式曲面如何绘制出来,直到前几天以“元球”为例研究了一些代码,git上的一些代码能看懂是做什么了。但是对于一些细微的问题还是不甚理解,以至于学到的东西不能应用到自己的项目中。此处翻译一下Blender手册,希望能有所帮助把。介绍元(meta)对象属于隐式曲面的一种,表示那些不能使用顶点(如网格)或者控制点(表面)显式定义的物体,他们存在于程序运行过程中。元对象实际上是由Blender实时计算的数学公式。元对象的一个非常明显的视觉特征是它们类似于流体一样易变,或者是类似于具有圆状的粘土。

2020-08-31 21:50:54 400

原创 OpenGL 光照练习

前言光照射到物体表面,经过反射到达人眼,使得人们可以看清楚这花花世界。实际上,在计算机中模拟自然光是不现实的,大多数情况下,实现光照效果使用的是光照模型。现在最常见的光照模型被称为“ADS”模型。光照模型所谓“ADS”模型,是将光照到物体表面所产生的反射分为三类:环境光反射,漫反射和镜面反射。环境光反射:影响场景中所有的物体漫反射:根据光的入射角度调整物体的亮度镜面反射:展示物体的光泽镜面反射在光照射到光滑表面上发生,且只能在特定角度观察到;而漫反射在光照射到粗糙表面上发生,可以在各个角

2020-08-24 19:57:48 281

原创 Blender 2.83之建模练习

何为Blender?Blender 是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender 拥有方便在不同工作下使用的多种用户界面,内置绿屏抠像、摄像机反向跟踪、遮罩处理、后期结点合成等高级影视解决方案。同时还内置有卡通描边(FreeStyle)和基于 GPU 技术 Cycles 渲染器。以 Python 为内建脚本,支持多种第三方渲染器。Blender 为全世界的媒体工作者和艺术家而设计,可以被用来进行 3D 可视化,同时

2020-08-17 14:02:12 848

原创 OpenGL矩阵堆栈

前言回顾OpenGL在同一场景绘制不同模型的过程。同一场景不同模型在单个场景中绘制不同的简单模型,可以为每个模型分别使用单独的缓冲区,如果有需要(如涉及复杂光照或者对象由不同图元组成等情况),还可以设置不同的着色器程序进行渲染。这些简单模型之间没有内在联系,因此只需要通过模型矩阵改变其在场景中的位置,然后按“流程”输出即可。一种更加复杂的情况是分层模型。分层模型由多个简单模型组装而成,且这些简单模型之间存在一定的内在联系。行星系统一个典型的例子——地球围着太阳转,月球围着地球转。分层模型中较难解决的

2020-08-14 15:34:35 715

原创 OpenGL绘制简单模型(回顾)

前言回顾OpenGL绘制简单模型:3D立方体。(今天又学到了一丢丢markdown用法,居然可以用html进行图片排版)缓冲区和顶点属性要想绘制一个对象,需要将该对象的顶点数据发送给顶点着色器。通常要把顶点数据在C++端放入一个缓冲区(所谓的VBO),并将该缓冲区和着色器中声明的顶点属性相关联。例如:以绘制一个三维空间立方体传递数据为例。GLuint vao,vbo;glGenVertexArrays(1,&vao); //管理顶点缓冲对象,必须有glBindVertexArray(va

2020-08-09 17:16:03 1962

原创 OpenGL 基本环境搭建

前言练习使用Markdown编辑器,回顾OpenGL基本环境的建立。OpenGL渲染程序从文件中读取数据(顶点、纹理等)并载入到缓冲区中,然后将数据发送给GLSL,经过顶点着色器、曲面细分着色器(可选)、几何着色器(可选)、片段着色器,最终发送到屏幕上进行绘制。在顶点着色器中,程序“按顶点”处理数据;在几何着色器中,程序“按图元”处理数据;在片段着色器中,程序“按像素”处理数据。以前忽视的地方:在调用glfwDrawArrays()函数时,管线中的GLSL代码才开始执行。C++/OpenGL先将数据

2020-08-05 11:17:49 150

原创 C++编程问题记录

前言:此文记录C++程序编写过程中遇到的一些尚未想明白的小问题。在.h文件中声明一个类,将类的构造函数和析构函数的定义写在.h中类定义的外面,将其他函数的定义写在对应的.cpp文件中,运行时出现LNK2005错误。移动到.cpp文件中后问题解决,不晓得为什么?(我还没有用这个类,只是在main中包含了这个头文件).h:class A{public: A(); ~A();private: float m_p; B *b; //B是另一个.h文件中定

2020-08-02 11:13:12 116

原创 OpenGL LookAt函数理解

前言:记录OpenGL学习过程中的一些知识点,以个人理解为主。LookAt函数将顶点的世界空间坐标转换为观察空间坐标,实际上是以相机为原点重新定义的三维空间。glm::mat4 LookAt(glm::vec3 pos, glm::vec3 target, glm::vec3 up)函数接受三个参数,相机位置pos,目标位置target以及相机上向量up。工作流程是:glm::vec3 zaxis = normalize(pos-target)指向观察空间正Z轴方向,glm::vec3 xax

2020-07-26 09:54:36 6170 2

空空如也

空空如也

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

TA关注的人

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