自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何使用OpenGL跨平台创建窗口

#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>using namespace std;const unsigned int screen_width = 800;const unsigned int screen_height = 600;void framebuff...

2019-04-08 12:32:44 450

原创 计算机图形学(OpenGL)

前言本次先介绍一些计算机图形学的“基础”知识,之所以将基础二字用括号括起来,是因为这一部分其实可以称之为计算机图形学的基础的基础,当然也是非常重要的一部分。就像我们交朋友一样,真正的好友之间都是互相了解“前世今生”的,基于这样的了解,我们可以更好的经营朋友间的友谊。学习也是一样,学习一个新的东西,首先对新东西的背景有一些了解有助于我们更好的学习其中的细节。什么是计算机图形学我们先来回答一下...

2019-03-28 16:50:17 3068

原创 《Physically Based Rendering》翻译中文版——Introduction(介绍)

我自己在自学计算机图形学,现在正好学习到基于物理渲染这一块。在网上查阅大量的资料发现很少有中文的资料,想着趁着自己学习的时候,将这本书翻译过来帮助大家阅读和学习这本书中的内容。因个人能力和精力有限,在学习并翻译此书的过程中难免有一些失误,希望读者看到不妥之处,还请指正。我的邮箱:liupeicandy@163.com原书网址:http://www.pbr-book.org/3ed-2018/In...

2019-06-06 18:18:08 7104 4

原创 OpenGL: 着色器类实现(顶点着色器,片段着色器)

注意:此着色器类,将顶点着色器与片段着色器一起实现,如需分开,还需自行拆分。头文件:#ifndef SHADER_H#define SHADER_H#include <glad/glad.h>#include <string>#include <fstream>#include <sstream>#include <iostr...

2019-04-08 20:53:18 1233

原创 OpenGL: 使用多属性顶点,实现颜色混合

与之前不同的是,之前的顶点数据中只有位置数据,现在给顶点数据中添加了颜色属性。顶点数据实际上是顶点属性,这些属性包括:位置属性、颜色属性等等。而随着顶点属性的变化,我们的着色器也要做相应的调整。要点:在顶点数据中添加了颜色数据(在顶点属性中添加了颜色属性)顶点数据的增加,也需要相应的对顶点着色器和片段着色器做调整当对顶点着色器和片段着色器作出调整以后,相应的要重新配置顶点属性指针...

2019-04-08 20:20:02 1113

原创 OpenGL:实现跨着色器传送数据

要点:着色器之间靠数据传输,也就是数据输入----输出交流交流时,主要使用的关键字 in out但是顶点着色器和片段着色器的输入输出有些不同,因为顶点着色器需要高效率的输入顶点数据,因此使用location和layout的组合以表示数据输入片段着色器因为最终要输出一个颜色到屏幕,因此需要一个vec4作为容器输入颜色核心代码段:const char *vertexbuffersour...

2019-04-08 19:22:32 368

原创 OpenGL: 多对象多渲染引擎实现方式

以下代码演示如何创建多个着色程序,并对多个数据进行渲染。要点:片段着色器决定屏幕上所显示的颜色,如果要输出颜色不同的物体,需要设置多个片段着色器并进行编译,最后将片段着色器与顶点着色器链接在一起创建一个渲染引擎。如上点所述,片段着色器决定屏幕输出看到的像素属性,而所具有的数据的多样性,决定可以输出多少图形至屏幕。综上两点,使用多个片段着色器组成的渲染小程序可以输出多种像素属性,使用多组数...

2019-04-08 16:48:31 1169 1

原创 OpenGL:同时创建并渲染多个数据

使用数组储存多个顶点数据同时渲染多个对象#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>using namespace std;const unsigned int screen_width = 800;const unsigned int screen_heigh...

2019-04-08 15:45:35 1507 1

原创 OpenGL编写着色程序,并演示使用

用到少量的OPENGLSL语言实现简单的顶点着色器实现简单的片段着色器使用VAO储存vertex attributes演示如何链接顶点着色器和片段着色器并创建一个着色程序最后,输入了一组顶点数据,绘制了一个三角形可以使用此小程序创建各种图形,只需要多加几个顶点。#include <glad/glad.h>#include <GLFW/glfw3.h>#...

2019-04-08 14:20:08 331

原创 代码解析

如有失误之处,还恳请指教!!!(缺少例题8.5,打开8.5的代码时,发现自己写的全不见了#######)8.1// inline.cpp -- using an inline function#include <iostream>// an inline function definition//内联函数定义。使用内联函数有两种措施:1. 在函数声明前加上关键字inline...

2019-04-01 21:00:48 318

原创 List基本实现与算法

选择排序插入排序#ifndef LISTNODE_H#define LISTNODE_H#define position listnode<T>*template <typename T>struct listnode{ T data; position pred; position succ; listnode(){};...

2019-04-01 20:57:13 258

原创 Vector的基本功能实现与算法

功能描述:向量构造和析构向量扩容操作无序向量查找无序向量区间删除/单个删除无序向量去重无序向量插入判断向量是否有序有序向量查找有序向量去重二分查找插值查找起泡排序归并排序其中,二分查找做了三个版本,可以比较看各版本的差异;起泡排序做来两个版本,新版本比旧版本效率更高。#ifndef VECTOR_H#define VECTOR_Htypedef int ran...

2019-03-30 17:43:50 667

原创 C++ primer plus (第六版)第八章例题代码及解释

如有失误之处,还恳请指教!!!(缺少例题8.5,打开8.5的代码时,发现自己写的全不见了#######)8.1// inline.cpp -- using an inline function#include &lt;iostream&gt;// an inline function definition//内联函数定义。使用内联函数有两种措施:1. 在函数声明前加上关键字inline...

2019-01-21 20:48:11 635

原创 C++ primer plus (第六版)第七章strctfun.cpp代码及解释

如有失误之处,还恳请指教!!!// strctfun.cpp -- functions with a structure argument#include &lt;iostream&gt;#include &lt;cmath&gt;// structure declarations//结构声明struct polar{ double distance; // ...

2019-01-20 15:21:23 216

原创 C++ primer plus (第六版)第七章arrobj.cpp代码及解释

如有失误之处,还恳请指教!!!//arrobj.cpp -- functions with array objects#include &lt;iostream&gt;#include &lt;array&gt;#include &lt;string&gt;const int Seasons = 4;using namespace std;//使用array对象来存储四个季度,表示这...

2019-01-20 15:20:26 209 1

原创 C++ primer plus (第六版)第七章arrfun4.cpp代码及解释

如有失误之处,还恳请指教!!!// arrfun4.cpp -- functions with an array range#include &lt;iostream&gt;const int ArSize = 8;//函数原型:返回值int类型,含有两个参数,两个参数均为指针int sum_arr(const int *begin, const int *end);int main(...

2019-01-20 15:19:31 160

原创 C++ primer plus (第六版)第七章arrfun3.cpp 代码及解释

如有失误之处,还恳请指教!!!// arrfun3.cpp -- array functions and const#include &lt;iostream&gt;const int Max = 5;// function prototypes//函数原型,返回值为int类型,有两个参数,一个是double类型的数组,一个是int类型。int fill_array(double a...

2019-01-20 15:18:21 210

原创 C++ primer plus (第六版)第七章arrfun2.cpp代码及解释

如有失误之处,还恳请指教!!!// arrfun2.cpp -- functions with an array argument#include &lt;iostream&gt;const int ArSize = 8;int sum_arr(int arr[], int n);// use std:: instead of using directiveint main(){ ...

2019-01-20 15:17:10 158

原创 C++ primer plus (第六版)第七章arrfun1.cpp代码及解释

如有失误之处,还恳请指教!!!// arrfun1.cpp -- functions with an array argument#include &lt;iostream&gt;//定义一个int类型的变量Arsize,并且将其用const限定符限定表明其始终不可修改,因此在属性上类似为常量const int ArSize = 8;//函数原型,声明了一个返回值为int类型,具有两个参...

2019-01-20 15:14:39 166

原创 C++ primer plus (第六版)第七章例题代码及解释

如有失误之处,欢迎大家指正!// calling.cpp -- defining, prototyping, and calling a function// 将包含特定功能(输入输出流函数)的头文件包含进来#include &amp;amp;lt;iostream&amp;amp;gt;// 函数声明(函数原型),作用是告诉编译器在后面的代码中会有一个这种格式的函数(因为函数的定义在函数调用之后,// 而计算机的执...

2019-01-20 15:11:24 314

空空如也

空空如也

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

TA关注的人

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