自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (13)
  • 收藏
  • 关注

原创 vc++面向对象与可视化程序设计——万花筒的绘制

就是把圆分成若干份对应若干个+1个点,每个点和他后面的每个点都连线,思路很简单,主要是对近几章学的Windows API函数进行一下复习。#include <Windows.h>#include <tchar.h>#include <time.h>#include <stdio.h>#include <math.h>#def...

2020-04-29 21:53:39 1023

原创 IntelliSense: "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼容

最近在学windows编程时初始化窗口名时遇到这样的问题,这种问题都是因为传统字符编码和Unicode编码不兼容。同样,比如错误 1 error C2440: “初始化”: 无法从“const char [9]”转换为“TCHAR []”解决方法:加入头文件<tchar.h>然后把"。。。“改成_T(”。。。")...

2020-04-28 16:49:31 425

原创 用Assimp模型加载库加载一个Crytek的游戏孤岛危机(Crysis)中的原版纳米装(Nanosuit)

用这个例子来对GitHub上的LearnOpenGL教程前四个单元用到的所有自定义或者引入的各种头文件和资源进行一个总结,不得不说这个教程简直太美妙了。这个模型是来自对GitHub上的LearnOpenGL的一个例子:准备工作:用的是OpenGL和glfw,glfw安装配置可见:https://blog.csdn.net/derbi123123/article/details/104...

2020-04-27 12:43:49 1800

原创 Assimp模型加载库下载、编译、配置全过程

最近学完图形学基础后在老师的推荐下去看GitHub上的learnOpenGL教程,讲的挺好的,因为总用自己设置的那些顶点画不出来什么有意思的东西,所以需要从外部导入模型,教程中用的就是Assimp模型加载库。Assimp是Open Asset Import Library(开放的资产导入库)的缩写。Assimp能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至...

2020-04-27 12:42:21 9112 4

原创 error C2668: “std::to_string”: 对重载函数的调用不明确

error C2668: “*****”: 对重载函数的调用不明确:说明了你的参数类型没有明确的指明。你可以右键找到它定义的地方,找到你需要的重载函数对应的参数类型,然后对你的参数强制类型转换即可。我遇上的是to_string函数出现这个问题,to_string就是用来把数字类型的变量装换为字符串类型,他在头文件中的重载函数有很多:随便选一个就可以,在参数前强制类型转换即可。inline st...

2020-04-27 11:44:54 9178

原创 写一个自己的加载、绑定、设置纹理应用方式的函数

我用的stb_image.h加载图片到程序中,它下载地址和配置方式可见https://blog.csdn.net/derbi123123/article/details/105610298加载、绑定、设置纹理应用方式的函数:unsigned int loadTexture(char const * path){ //纹理也是使用ID引用的。让我们来创建一个 //glGenTextures...

2020-04-25 22:21:28 247

原创 我们自己的摄像机类(在OpenGL中造一个摄像机)

在学图形学时,我们都是通过把场景中的所有物体向z轴负方向移动来模拟出摄像头的感觉,但那样的话我们模拟摄像机移动时其实也只能移动物体,当然我们还可以用glLookAt改变对应参数来模拟摄像机移动会更真实一些。但我们如果要应用到着色器中只用glLookAt很不方便,比如我们经常要计算镜面反射光就需要视线方向,而且OpenGL本身没有摄像机的概念,但我们可以通过摄像机向后移动来模拟出摄像机,产生一种我...

2020-04-25 21:53:57 634 1

原创 将汉诺塔问题简单的可视化来形象的理解递归

在初学c语言时我们就是用汉诺塔问题来理解递归的,因为最近又看到了,然而我已经忘记当时是怎么操作的,所以利用最近学的图形学将其可视化加深理解。汉诺塔问题:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:...

2020-04-25 20:41:40 634

原创 实现游戏的读档和存档

最近学图形学经常用EasyX图形库去实现一些图形学算法,因为这个函数库使用方便,简化了很多配置,我也用它来做了一些小游戏,怎么储存上一次用户运行的信息就很关键,这里的实现也仅仅就是简单的文件读写操作,但是文件不仅仅可以实现游戏的读档和存档,还可以用来处理用户账户、登录信息、玩家统计、地图信息、关卡设计、游戏配置等持久化数据。很多时候我们按下“ESC”就会让游戏暂停,这时如果我们不想玩了,可以选择...

2020-04-24 19:53:11 6502 1

原创 互动粒子仿真效果(摩擦力、引力、击打力)

其实模仿力的作用,莫过于模仿力造成的加速度或者物体的形变,所以要模拟现实世界中的摩擦力、引力、击打力只需要根据他们作用力度给与一定的加速度去影响物体的速度即可,所以这个问题其实很简单。互动粒子仿真的主要功能:(1)粒子运动会受到摩擦力的影响(2)粒子会受到鼠标引力的影响,且距离越近引力越大(加速度越大)(3)粒子会受到鼠标单击(击打力)的影响,且距离越近力越大(加速度越大)(4)粒子会受...

2020-04-23 21:09:30 805

原创 实现黑客帝国的片头字符雨并控制其停止,显示“The Matrix”

最近在学图形学,作业涉及到做一个字符雨动画,这不禁让我想到黑客帝国的片头,黑客帝国的特效以及其跨时代意义在今天看来都令人惊叹,可见创作者对未来的洞悉,也能深深感受到计算机图形学的无穷魅力。因为OpenGL的框架略微繁琐,之前对一些图形学原理知识比如图形生成算法、裁剪算法、曲线生成算法等等,一直用EasyX二维图形库去进行绘制,这里也一样,其实和OpenGL相比不过就是简化了那些配置,变成了2维,...

2020-04-23 00:16:30 570

原创 通过一块半透明(Alpha值为0.5)的蓝色玻璃观察一个红色茶壶表面的效果

程序是很简单,但是不写确实发现不了其中的问题(其实是没认真复习忘了这个常识),既然是通过一块半透明(Alpha值为0.5)的蓝色玻璃观察一个红色茶壶表面的效果,所以蓝色玻璃在前,茶壶在后,所以我先画了一个蓝色的正方形,透明度为0.5,再画了一个茶壶,然后就成下面这样了。为什么蓝色玻璃不透明?因为在混合起来实现半透明效果时必须从远到近画,这很难以理解,不过仔细想想深度缓存的原理,其实就是让我们人...

2020-04-22 20:05:03 979

原创 关于聚光灯各种衰减系数的尝试体会聚光灯的效果

这是计算机图形学基础的课后题:编制OpenGL程序,显示包含一个球体和正四面体,使用有衰减的聚光灯进行光照,球面和正四面体具有不同的材质,分别调整球面和正四面体的材质属性,以及聚光灯的衰减系数(包括沿光线路径和聚光灯光锥体内的衰减),观察结果。OpenGL给的光照的相关函数真的多,分类非常细,需要根据光照计算公式以及函数说明去尝试并体会不同光照打在不同材质的物体上的效果。可以通过改变其中的参数...

2020-04-21 21:35:44 1318

在OpenGL中创建一个球体动画,使球体在窗口内做自由落体运动,并在撞击地面后能够返回原来高度

这是计算机图形学基础的一道单元练习题,看题的时候觉得没什么,写出来才发现其中大有门道,其中有几个值得关注的地方:首先如果你是以窗口底部为地面的话,你会发现小球在第二次下落时无法回弹,这就很恶心了,做了很多无谓的尝试查了一些资料最后也只是找到了一个合适的位置让小球可以一直下落和回弹。还有一个细节就是我初始化小球y坐标为9.0001,而其回弹的最高位置是9.0,如果初始化小球y坐标也是9.0,小...

2020-04-21 16:09:06 3000

原创 利用OpenGL的多视区分别在4个视区内显示空间四面体的透视投影图、主视图、俯视图、侧视图

1

2020-04-19 22:57:18 4235 10

原创 GLM数学库的配置,比之前的 SOIL2 配置简单多了,还更好用。

GLM是OpenGL Mathematics的缩写,它是一个只有头文件的库,也就是说我们只需包含对应的头文件就行了,不用链接和编译。GLM可以在它们的网站上下载。关于版本的问题,有一个重点:GLM库从0.9.9版本起,默认会将矩阵类型初始化为一个零矩阵(所有元素均为0),而不是单位矩阵(对角元素为1,其它元素为0)。如果你使用的是0.9.9或0.9.9以上的版本,你需要将所有的矩阵初始化改为 ...

2020-04-19 10:36:45 872

原创 用stb_image.h轻松地加载图片到程序中(比如纹理)

stb_image.h是Sean Barrett的一个非常流行的单头文件图像加载库,它能够加载大部分流行的文件格式,并且能够很简单得整合到你的工程之中。stb_image.h可以在https://github.com/nothings/stb下载。解压后找到stb_image.h加入你的工程,并另创建一个新的C++文件,输入以下代码:#define STB_IMAGE_IMPLEMENTA...

2020-04-19 09:50:05 10624 3

原创 我们自己的着色器类(为了不每次使用shader都搞那么多代码用来配置各种东西)

在https://blog.csdn.net/derbi123123/article/details/105566292中我总结了glfw+shader的程序框架,在https://blog.csdn.net/derbi123123/article/details/105566505中我总结了freeglut+shader的程序框架。然而:编写、编译、管理着色器是件麻烦事。其实下面的类也就是对在...

2020-04-17 10:22:05 923

原创 freeglut+shader的程序框架

最近学图形学学到了shader,刚开始接触简直要吐了,但是看过几个例子程序后逐渐习惯了,也体会到用shader要远比正常绘制香很多,尤其是当数据过大时,但是他有一套繁琐的机制,在看过很多不同教程后我总结了一套程序框架,重点还是在于shader的配置。关于glew:它提供了所有扩展功能函数的接口,在freeglut中使用shader必须要用glew。使用glewInit(); 进行初始化,具体...

2020-04-16 20:49:27 516

原创 glfw+shader的程序框架

最近学图形学学到了shader,刚开始接触简直要吐了,但是看过几个例子程序后逐渐习惯了,也体会到用shader要远比正常绘制香很多,尤其是当数据过大时,但是他有一套繁琐的机制,在看过很多不同教程后我总结了一套程序框架,重点还是在于shader的配置。关于shader的函数(都是自己封装的):void setShaders(void);其中有对shader的基本配置链接等等超全的集合。void...

2020-04-16 20:42:28 514

原创 编程实现多边形的平移、比例(缩放)、旋转、对称和错切等二维仿射变换(大有门道)

这是计算机图形学基础的一个课后题,其实完全可以直接用OpenGL提供的几何变换的函数轻松的实现,但是毕竟学就要学明白,仔细写这个题一是为了回顾一下各种变换对应的变换矩阵和数学规律,二是加深一下对交互的使用,三是去体会OpenGL绘图时交换不同变换的顺序时会有什么变化(体会为什么有时候不能交换变换顺序)。首先声明一个十分鸡肋的概念:什么是二维仿射变换?仿射变换是一种二维坐标到二维坐标之间的线性变...

2020-04-13 23:36:16 9469 6

原创 对交互式绘制三次贝塞尔曲线的改进(二)——鼠标交互实现曲线的拼接

关于贝塞尔曲线在我的分类专栏的计算机图形学总结中有几篇文章分别给出了定义、递推公式、OpenGL贝塞尔曲线函数取实现贝塞尔曲线的绘制以及贝塞尔曲线的原理,至于交互式绘制三次贝塞尔曲线则是课后题,这次终于把这道课后题完整的实现了。课后题:交互式绘制三次贝塞尔曲线,要求可以实现曲线的拼接,并据此验证贝塞尔曲线的凸包性、端点等性质。贝塞尔曲线拼接的条件:首先肯定是连接处的坐标相等了,在程序中有...

2020-04-09 21:40:32 1520

原创 本想以等边三角形实现kock雪花曲线,却错误的画出与之完全不同的皇冠上的钻石,体会到了分形学的奥妙

首先来看kock曲线是如何生成的:(1)过程:主要分为三大步骤:第一步,给定一个初始图形(这里是线段);第二步,将这条线段中间的1/3从中点向外折起(夹角为60度);第三步,按照第二步的方法不断的把各段线段中间的1/3处向外折起。(2)新生成图形的坐标:假设原直线的首尾点是P0(x0,y0)和P1(x1,y1),那么新生成的图形的五个端点就是:(注意第三个端点的正负号表示中间两条新直线位...

2020-04-08 22:25:31 1148 2

原创 以等边三角形实现迭代次数在6次以内的kock雪花曲线并用键盘交互控制迭代次数

在https://blog.csdn.net/derbi123123/article/details/105397176中详细说明了kock曲线的原理并以直线段实现迭代次数在6次以内的kock曲线并用键盘交互控制迭代次数代码:功能:按a增加迭代次数,按d减少迭代次数。迭代六次(按六次a)效果:#include <GL/freeglut.h>#include <math...

2020-04-08 22:14:22 918

原创 以直线段实现迭代次数在6次以内的kock曲线并用键盘交互控制迭代次数

最近学图形学学到了分形学的一些相关概念和知识,恰好课后题中有一道题就是要去实现kock曲线的绘制,分形学的魅力太大了,自然界的很多东西都可以用分形学中迭代/递推的思想的绘制出来,而且只要找到规律/公式可以非常简单的编写程序去实现,很方便,也利于计算机提高效率。首先来看kock曲线是如何生成的:(1)过程:主要分为三大步骤:第一步,给定一个初始图形(这里是线段);第二步,将这条线段中间的1/3...

2020-04-08 21:31:40 796 1

原创 对交互式绘制三次贝塞尔曲线的改进(一)

之前做的https://blog.csdn.net/derbi123123/article/details/105345888这个交互式绘制三次贝塞尔曲线只能选中四个控制点之后再把控制图形画出来,由于昨天实现了连续折线的绘制,所以我们可以边选取控制点,边画控制图形和三次贝塞尔曲线了。右键点击可以清除上一次绘制,左键点击可以选择控制点,鼠标移动可以控制控制图形边的斜率。#include ...

2020-04-08 10:17:04 735

原创 OpenGL交互式连续折线的绘制

没什么难的,都是调用OpenGL的API函数去实现即可,却也有一些小的细节处理:flag:用来标记是否开始交互,因为所有折线(直线段)的第一个端点和最后一个端点都是仅被一条直线占有,而中间的端点因为绘制的是连续折线,都是被两条直线共同占有,这在交互时设定端点坐标和重绘是有一个小细节。看代码中有注释。功能:左键点击选择端点,鼠标移动控制线的斜率,再次点击第二个端点画线,右击可以清除上一次画...

2020-04-07 15:28:27 1539

原创 设置随机种子的函数: srand(种子);的重要性

游戏中,许多情况都是随即发生的。还有一些图案程序,例如屏保,也是随即运动的。这就需要用随机函数。随机函数很简单,只有一个:rand()该函数返回 0~32767 之间的一个整数。(不需要记住 32767 这个数字,大概知道这个范围就行了),该函数在头文件 <stdlib.h> 中,使用前记得引用。然而!!!!虽然产生的数字是随机的,但每次产生的数字序列都一样。 为什么????因为...

2020-04-06 23:19:49 2659

原创 交互式地绘制三次贝塞尔曲线(OpenGL中贝塞尔曲线函数实现)

在下面两篇文章中我分别用贝塞尔曲线的定义公式和递推公式实现了贝塞尔曲线的绘制https://editor.csdn.net/md/?articleId=105316199https://editor.csdn.net/md/?articleId=105317678这里我们使用OpenGL中贝塞尔曲线函数实现贝塞尔曲线的绘制,另外可以让用户自己通过鼠标选择四个控制点,画三次贝塞尔曲线。重要函...

2020-04-06 16:33:46 2101 4

原创 根据Bezier曲线的定义公式实现Bezier曲线的绘制

Bezier曲线的定义公式Pi是曲线上点的坐标(x,y,(z=0)), Bi,n(t)伯恩斯坦公式,绘制Bezier曲线的第一种方法是根据这个公式来绘制。首先看看绘制的效果:(1)计算定义中多项式的值首先要求伯恩斯坦公式的多项式的值Cni,写成后面这种阶乘的形式方便用程序去表达了://计算定义中多项式的值void GetCnk(GLint n,GLint *c)//n是控制点的个数...

2020-04-04 22:51:38 3416

原创 根据de Castel jau的递推算法实现Bezier曲线的绘制

de Castel jau的递推算法(1)原理(2)这么说很难看懂,举个例子结合理解:首先画出控制点:然后取两条曲线的1/3处的点并连线:p01 中1表示第一层,也就是第一次取等比例的点,0表示这一层的第0个点,其他同理再取连线上的1/3处的点:显然p02 已经是最后一个可以取等比例处的曲线的点了,所以曲线上t=1/3处的点就是p02 ,同理可以求t=1/2、1/4.。。...

2020-04-04 22:50:36 3026

转载 分形学——无穷放大的曼德布洛特集

先给出这篇文章的链接https://codebus.cn/yangw/post/zoomable-mandelbrot-set最近在学计算机图形学,学到kock曲线时无意中看到了这篇文章,更加深刻地体会了迭代在图形学中的无穷魅力,曼德布洛特集可以看下面的draw函数,理论上是可以无穷放大,但实际受 double 类型精度的影响,放大到一定程度就会是马赛克了。看看效果:代码:// 程序名称:...

2020-04-02 20:54:57 1385

原创 用OpenGL的字符函数在屏幕上写OpenGL

在OpenGL实用程序工具包中包含了一些预定义的字符库,用来显示点阵和矢量字符。函数 void glutBitmapCharacter(void *font,int character);显示一个GLUT位图字符。用函数glutBitmapCharacter 显示字符时,是将当前的光栅位置作为字符的左下角点,函数执行后,点阵字符装入刷新缓冲存储器,当前的光栅位置会在x坐标方向上获得一个字符宽度的...

2020-04-01 22:08:05 2047

原创 OpenGL分别用点和折线模式实现正弦和余弦曲线的绘制

点就是直接用vertex,折线就用GL_LINE_STRIP的模式其次就是正弦和余弦曲线用程序表示就是:先看看用点画的-π到π区间的正弦曲线 //用点画正弦曲线 glColor3f(1.0,0.0,0.0); glTranslatef(250,250,0); glBegin(GL_POINTS); for(float x=-PI ; x<PI ; x+=2*PI/180){ ...

2020-04-01 21:51:04 2278

原创 OpenGL结合书中画苍蝇对位图的思考——镂空效果的实现以及利用位图实现用黑白相间的棋盘图案填充多边形

原理及重要函数说明其实在画虚线和点划线时就已经利用16进制的每位来代表线段的一部分是开还是关(转换为二进制后也就是1画,0不画),这里的道理类似,只不过因为是绘制平面所以规则更多,但原理和画线一样。所谓镂空,不就是舍弃一部分不画来达到更好的效果吗。用到的重要函数:(1)glEnable(GL_POLYGON_STIPPLE);启用多边形填充模式顾名思义,POLYGON是多边形,STIPPL...

2020-04-01 21:17:21 1167

Ray Fire:专门用来制作破碎效果的插件

Ray Fire:专门用来制作破碎效果的插件

2022-12-17

Koreographer 1.4.0专门制作的音游的插件,2020,2021实测可用

你可以利用它来制作节奏大师的谱面、跳舞的线的节奏点,音游的必备

2022-12-17

Toony Colors Pro

卡通渲染插件

2022-12-09

Unity游戏UI界面框架设计系列视频课程

框架简单使用,容易理解,手把手搭建的内容,主要包括了核心框架、窗体层级管理、模态窗体管理、日志调试与配置管理、消息传递中心、资源国际化技术

2022-01-06

Unity-2D-Destruction-master

2D破碎效果,可以无限碎,碎了还能碎,真的好用

2021-03-23

Ultimate Rope Editor V1.25.rar

绳索模拟插件

2021-03-23

2DxFX 2D Sprite FX v3.0.0.unitypackage

2D特效,里面有所有源码,不仅是我们开发时便捷的工具,也是学习shader和编辑器开发的利器

2021-02-20

Sprite Color FX v2.0.1.unitypackage

2D特效,不仅方便我们做游戏,也方便我们学习shader

2021-02-20

unity 2D Dynamic Lights and Shadows - 2DDL PRO 1.4.1.zip

专门用于2D游戏的灯光和阴影,好用的一批

2021-02-20

Sqlite.zip

看我的文章:Unity在安卓端、ios、PC分别使用Sqlite数据库存储数据

2021-01-27

Shake.unitypackage

Unity控制安卓和IOS端振动功能大小和幅度的工具,说明见我的同名文章

2021-01-27

OpenGL(glfw)实现的一个消砖块的游戏

对GitHub上的learnOpenGL教程的学习已经接近尾声了,可以说这个教程完美的衔接了平时教学中一直用的旧OpenGL渲染的方式和现在流行的OpenGL,这个消砖块游戏也是教程最后的一个实战,内容很简洁但是包含了OpenGL几乎所有最基础的内容。

2020-05-23

Assimp.rar

这是用来加载外部模型的函数库,具体的配置方式可见https://blog.csdn.net/derbi123123/article/details/105783048

2020-05-04

NateRobinTutors-win32.rar

关于OpenGL中很多基本变换、光照、纹理等函数的演示demo,有助于理解图形学、绘制、图形硬件的工作过程及原理

2020-04-07

glfw-glad-Cmake.rar

里面有官网上下的3.3.2的glfw、glad、Cmake的源文件或安装文件,下载后具体配置可以看https://editor.csdn.net/md/?articleId=104350624,这里面有完整的配置过程

2020-03-26

适用于vs2010、2015freeglut、glew编译好的.h、lib、dll文件以及测试程序.rar

这里面是适用于vs2010、2015freeglut、glew编译好的.h、lib、dll文件以及测试程序,大家就不用去官网下载后再编译了,那样太慢了,只需要按照网上配置的方法把对应文件放到vs的安装目录下再在vs中链接即可

2020-03-26

空空如也

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

TA关注的人

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