自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Golang中json编码的结构体标签

json编码时结构体的标签使用。

2022-08-14 12:12:36 459 1

原创 Golang中Json编解码

Golang中Json编解码示例。

2022-08-14 11:52:05 234

原创 Golang中http编程

Golang中Http编程简单示例。

2022-08-14 11:22:42 715

原创 Golang中Socket编程2

golang多连接

2022-08-13 21:39:53 151

原创 Golang中的Socket编程

Golang的网络编程

2022-08-13 21:11:53 452

原创 Golang中结构体-类、封装、继承

学习Golang

2022-07-27 23:22:54 512

原创 learnOpenGL_12_投光物

1、 将光投射(Cast)到物体的光源叫做投光物(Light Caster)。包括平行光、点光源、聚光源。2、 平行光当一个光源处于很远的地方时,来自光源的每条光线就会近似于互相平行。不论物体和/或者观察者的位置,看起来好像所有的光都来自于同一个方向。当使用一个假设光源处于无限远处的模型时,它就被称为定向光,因为它的所有光线都有着相同的方向,它与光源的位置是没有关系的。因为所有的光线都是平行的,所以物体与光源的相对位置是不重要的,因为对场景中每一个物体光的方向都是一致的。由于光的位置向量保持一致,场

2021-08-18 10:19:23 279

原创 learnOpenGL_11_光照贴图

1、 漫反射贴图通过某种方式对物体的每个片段单独设置漫反射颜色。根据片段在物体上的位置来获取颜色值。使用一张覆盖物体的图像,能够逐片段索引其独立的颜色值。在光照场景中,它通常叫做一个漫反射贴图(Diffuse Map)(3D艺术家通常都这么叫它),它是一个表现了物体所有的漫反射颜色的纹理图像。在着色器中使用漫反射贴图的方法和纹理教程中是完全一样的。但这次将纹理储存为Material结构体中的一个sampler2D。注: 注意sampler2D是所谓的不透明类型(Opaque Type),也就是说不能将它

2021-08-17 19:30:49 120

原创 learnOpenGL_10_材质属性

1、 材质每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点,而有些物体则会散射很多,产生一个有着更大半径的高光点。如果我们想要在OpenGL中模拟多种类型的物体,我们必须为每个物体分别定义一个材质(Material)属性。2、指定一个物体和光的颜色,以及结合环境光和镜面强度分量,来定义物体的视觉输出。当描述一个物体的时候,可以用这三个分量来定义一个材质颜色(Material Color):环境光照(Ambient Lighting)、漫

2021-08-17 15:50:00 448

原创 learnOpenGL_09_基础光照

1、 冯氏光照模型主要结构由3个分量组成:环境(Ambient)、漫反射(Diffuse)、镜面(Specular)光照。下图展示了这些光照分量的样子。环境光照:即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会是完全黑暗的,为了模拟这个,使用一个环境光照常量,它拥有给物体一些颜色。漫反射光照:模拟光源对物体的方向性影响,它是冯氏光照模型中视觉上最显著的分量。物体的某一部分越是正对着光源,它就会越亮。镜面光照:模拟有光泽物体上面出现的亮点。镜面光照的颜色相比于物

2021-08-17 08:38:15 99

原创 learnOpenGL_07_摄像机

1、 摄像机/观察空间以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标。要定义一个摄像机,需要它在世界空间中的位置、观察的方向、一个指向它右侧的向量以及一个指向它上方的向量。实际上创建了一个三个单位轴相互垂直的、以摄像机的位置为原点的坐标系。2、 摄像机位置获取摄像机位置很简单。摄像机位置简单来说就是世界空间中一个指向摄像机位置的向量。glm::vec3 cameraPos = glm::vec3(0.0f,0.0f,3.0f);注

2021-08-16 16:11:19 120

原创 learnOpenGL_06_坐标系统

1、 OpenGL中可见的所有顶点都为标准化设备坐标,每个顶点的x,y,z都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐标。然后将这些标准化设备坐标传入光栅器(Rasterizer),将它们变换为屏幕上的二维坐标或像素。2、 将坐标变换为标准化设备坐标,接着再转化为屏幕坐标的过程通常是分步进行的。顶点在最终转化为屏幕坐标之前还会被变换到多个坐标系统(Coordinate System)。将物体的坐标变换到几个过

2021-08-16 15:22:31 85

原创 learnOpenGL_05_变换

1、为了让绘制的物体拥有动态效果,使用(多个)矩阵对象科研更好的变换一个物体。2、向量是一个具有方向和大小的量。3、向量与标量的运算标量(Scalar)只是一个数字(或者说是仅有一个分量的向量)。当把一个向量加/减/乘/除一个标量,我们可以简单的把向量的每个分量分别进行该运算。对于加法来说会像这样:其中的+可以是+,-,•或÷,其中•是乘号。注意-和÷运算时不能颠倒(标量-/÷向量),因为颠倒的运算是没有定义的。注: 注意,数学上是没有向量与标量相加这个运算的,但是很多线性代数的库都对它有支持(

2021-08-16 14:10:59 118

原创 learnOpenGL_04_纹理

1、纹理是一个2D图片(甚至是1D和3D图片),用来添加物体的细节。为了把纹理映射到我们绘制的图形上,需要指定图形的每个顶点各自对应纹理的哪个部分。每个顶点会关联一个纹理坐标,用来标明纹理图像的哪个部分采样,之后在图形的其他片面上进行片段插值。使用纹理坐标获取纹理颜色叫做采样。纹理坐标在x和y轴上,范围在0到1之间。起始坐标(0,0)终始于(1,1)。2、纹理环绕方式当纹理坐标超出默认范围时,每个选项都有不同的视觉效果输出。使用glTexParameter函数对单独的一个坐标轴设置(s,t,r)gl

2021-08-13 22:04:03 144

原创 LearnOpenGL_03_shader着色器

1、着色器是运行在GPU上的小程序,是一种把输入转化为输出的程序,一种非常独立的程序,它们之间不能相互通信;它们之间的沟通只能通过输入和输出。2、GLSL着色器是使用GLSL的类C语言写成的。转为图形计算量身定做的,包含一些针对向量和矩阵操作的有用特性。2.1着色器开头要声明版本2.2接着是输入(in)和输出(out)变量、uniform和main函数着色的结构:#version version_numberin type in_variable_name;in type in_variab

2021-08-13 14:39:33 807

转载 LearnOpenGL02-hellotriangles

LearnOpenGL第二课,你好三角形。学习笔记。原文链接:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/1、图形渲染管线OpenGL中,任何事物都是在3D空间,而屏幕和窗口时2D空间,因此OpenGL的大部分工作都是关于把3D坐标转变为适应屏幕的2D像素。3D坐标转为2D坐标的处理过程就是由OpenGL的图形渲染管线(Graphics Pipeline)管理的。图形渲染管线分成两个主要部分

2021-08-12 23:09:19 124

原创 排序算法及其时间复杂度

类别 排序方法 时间复杂度 空间复杂度 稳定性 平均情况 最好情况 最坏情况 插入排序 直接插入 O(n2) O(n) O(n2) O(1) 稳定 希尔排序 O(n1.3) O(n) O(n2) O(1) 不稳定 选择排序 直接选择 O(n2) O(n2) O(n2) O(1) 不稳定 堆排序 O(nlog2n) O(nlo...

2021-08-11 11:39:35 76

原创 C++实现快速排序

#include#includeusing namespace std;void swap(int& a, int& b){int temp = a;a = b;b = temp;}//划分函数int partition(vector& arr, int low, int high){int i = low - 1;int j = high;int pivot = arr[high];while (1){while

2021-08-10 23:28:56 460

原创 C++实现归并排序

#include#includeusing namespace std;void merge(vector& arr, int L, int M, int R){int LEFT_SIZE = M - L;int RIGHT_SIZE = R - M + 1;vector left(LEFT_SIZE);vector right(RIGHT_SIZE);int i, j, k;for (i = L; i < M; ++i){left[i - L]

2021-08-10 23:27:59 150

原创 C++实现堆排序

#include#includeusing namespace std;void swap(vector& arr, int i, int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}void heapify(vector& arr, int n, int i){if (i >= n){return;}int last_node = n - 1;int c1 =

2021-08-10 23:27:07 1169

原创 C++实现选择排序

#include#includeusing namespace std;int findMaxPos(vector& arr,int n){int Pos = 0;int Max = arr[0];for (int i = 0; i < n; i++){if (arr[i] > Max){Max = arr[i];Pos = i;}}return Pos;}void select_sort(vector& arr

2021-08-10 23:26:01 78

原创 C++实现希尔(shell)排序

#include#includeusing namespace std;void insert(vector& arr, int n){int i = n;int key = arr[n];while (arr[i-1] > key){arr[i] = arr[i - 1];i--;if (i == 0)break;}arr[i] = key;}void insert_sort(vector& arr){int l

2021-08-10 23:25:13 108

原创 C++实现插入排序

#include#includeusing namespace std;void insert(vector& arr, int n){int i = n;int key = arr[n];while (arr[i-1] > key){arr[i] = arr[i - 1];i--;if (i == 0)break;}arr[i] = key;}void insert_sort(vector& arr){int l

2021-08-10 23:24:04 201

原创 排序算法一——冒泡排序

冒泡排序:对存放原始数据的数组,按从前往后的方向进行多次扫描,每次扫描称为一趟。当发现相邻两个数据的次序与排序要求的大小次序不符合时,即将这两个数据进行互换。代码:#include <iostream>using namespace std;int main(){vector<int> arr(5)={3,2,1,4,5};for(int i=0;i<5;++i){ for(int j=0;j<n-i;++j)...

2021-08-05 16:05:50 67

原创 UE4金属材质——净面金属学习笔记

金属材质笔记在项目里创建自己的材质。我的如下:双击Nick材质打开,可以看到Nick的一些基本属性。基本属性依次是:Base Color:基本颜色Metallic:金属性Specular:高光,表示表面的反射Roughness:表面粗糙程度Emissive Color:漫反射Normal:法线World Position Offset:世界坐标Ambient Occlusion:环境光对于净面金属,只需设置基础颜色、高光、表面粗糙程度即可。..

2021-05-04 23:51:08 2881

原创 C++数组相关的知识点梳理

最近将C++中的知识点整理了下,后续还会有其他的知识点更新。数组可以先声明再赋值,也可以再声明时对该数组进行赋值。数组是一种数据格式,能够存储多个同类型的值。数组的声明应指出以下三点:●存储在每个元素中的值的类型●数组名●数组中的元素的个数声明数组的通用格式如下:typeName arrayName[arraySize]; //typeName 数组要存储的元素的类型//ar...

2020-03-17 22:20:40 513

空空如也

空空如也

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

TA关注的人

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