一次心血来潮的C程序编译 && makefile

前言 想复习下数据结构,所以看了看相关的课程后打算手写一些东西,比如链表或者说其他的常用数据结构。 环境 MacOSX VSCode 本来打算在xcode上直接写纯C的程序的,但是写了几行就发现。。真鸡儿麻烦啊,而且我xcode用的也不好,各种快捷键也不熟就被劝退了。然后看到公司同事(serv...

2018-10-09 17:55:31

阅读数:73

评论数:1

无意间看到Pure-Mvc记录下

Pure-MVC 前言 在学习creator的一些框架的时候看到一些使用了MVC的内容,就在此做个思考和总结。PureMVC-TypeScript版本代码量很少非常容易看懂。 什么是MVC 开局一张图,内容全靠想 很明显的分层设计 Model View Controller 但...

2018-09-14 18:52:34

阅读数:24

评论数:0

关于ECS设计以及MVC分层设计和组件化设计的思考和总结(这个标题就问你长不长)

前言 最近工作忙了很多关于设计的事情,用了常用的分层设计MVC也尝试是用了ECS这种设计方式,同时也参考了Unity或者Creator的这种组件化方式。有了很多困惑也有了一些总结。 首先,MVC也好ECS也好他们都是一种编程的范式,或者说你组织代码的方式。然而他们的层面不同,也就是说不...

2018-09-13 17:58:56

阅读数:118

评论数:0

Opengl-法线贴图(用来细化表面的表现表现的凹凸)

我们通过这张图可以看出来,使用了法线贴图的物体表面更有细节更逼真,其实这就是发现贴图的作用,没什么钻牛角尖的。 其实表面没有凹凸的情况是因为我们把表面一直按照平整来做的,要想突出这个表面的凹凸就要用到法线贴图 到这里,我们暂停想一下,前面说的几种贴图,漫反射贴图,镜面光贴图,然后再到这...

2018-08-17 16:17:20

阅读数:80

评论数:0

Opengl-阴影(分为定向光的和点光源的)

前言 我们模拟了光照,发现真的很厉害,加上天空盒子,再加上反射感觉很逼真,但是看着看着你会发现。。不对,没影子。是的,光和影分不开的,有光的地方就会有影子,这才是真实的道理。怎么模拟影子呢?这就要用到前面学到的,帧缓冲-写入纹理。 阴影产生的原因如图,就是因为同一条射线上里的光近的...

2018-08-17 15:59:00

阅读数:163

评论数:0

Opengl-实例化(不知道为啥叫实例化,感觉应该叫一次批量渲染)

核心:glDrawArraysInstanced 和以往的不同就是这句Draw的时候改成这个API 补充:glVertexAttribDivisor 这个函数告诉了OpenGL该什么时候更新顶点属性的内容至新一组数据。它的第一个参数是需要的顶点属性,第二个参数是属性除数(Attrib...

2018-08-17 15:23:40

阅读数:102

评论数:0

Opengl-几何着色器(劫持顶点的家伙)

前言 我们知道在片段着色器和顶点着色之间,有一个几何着色器,我们之前说过它但是一直没有讲,这里了解一哈。 几何着色器的输入是一个图元(如点或三角形)的一组顶点。几何着色器可以在顶点发送到下一着色器阶段之前对它们随意变换。然而,几何着色器最有趣的地方在于,它能够将(这一组)顶点变换为完全...

2018-08-17 15:13:45

阅读数:58

评论数:0

Opengl-立方体贴图(天空盒子)

立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一个方向向量来进行索引/采样。假设我们有...

2018-08-17 14:59:03

阅读数:173

评论数:0

Opengl-帧缓冲(一个新的缓冲对象,想一下深度和模板缓冲)

OpenGL中的缓冲只是一个管理特定内存块的对象,没有其它更多的功能了。 首先我们明确一个原理或者道理,不论是什么缓冲,深度也好,模板也罢。再往前说的顶点数据的颜色缓冲。都是一个存储的单元,都是一个存储对象,管理一块特定的内存。没有什么特殊的功能。千万别想太多,记住了哈。 帧缓冲 ...

2018-08-17 14:50:06

阅读数:41

评论数:0

Opengl-面剔除(一种优化方式)

前言 我们已经可以正常的渲染一个物体也好加载一个模型也好,比如立方体,可以正常的渲染,然后我们还可以挪动摄像机来观察每一个面,但是,有一个问题想一想。我们挪动相机进入了立方体里面就会发现里面也渲染了。这。。问题出来了。可能很多东西我们都不希望或者根本没想着把里面也渲染的那么好。。我们看不...

2018-08-17 14:25:56

阅读数:93

评论数:0

Opengl-混合(原来不理解的src dst blender总算理解了)

混合 混合干什么:混合(Blending)通常是实现物体透明度(Transparency)的一种技术。也就是说为了实现透明的感觉,因为生活中玻璃等等的材质都是透明的,那么怎么模拟就用混合 混合规则: GL_ZERO 因子等于0 GL_ONE 因子等于1 GL_SRC_COL...

2018-08-16 18:47:26

阅读数:87

评论数:0

Opengl-深度测试&&模板测试

深度测试 深度缓冲:用来存储深度信息的,可以这么理解,在你屏幕上最后留下的裁剪区域你看到的东西其实是有深度的,就像现实世界里一样,有远近这样。然后这个远近的程度信息就存储在了深度缓冲里 深度测试:当深度测试(Depth Testing)被启用的时候,OpenGL会将一个片段的的深度值与...

2018-08-16 18:39:16

阅读数:58

评论数:0

Opengl-模型(告别箱子加载模型)

先放一个效果图 关于模型加载 一个非常流行的模型导入库是Assimp,它是Open Asset Import Library(开放的资产导入库)的缩写。Assimp能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结...

2018-08-16 17:35:58

阅读数:147

评论数:0

Opengl-光照章节学习成果

存在聚光灯 + 平行光 + 点光源

2018-08-16 17:23:51

阅读数:24

评论数:0

Opengl-光照-基本光照-投光物-多光源(现实世界的光可不只有太阳也并不只有一个)

前言 相信大家看过各种发光的道具,手电筒?看到过吧?灯泡看到过吧?除了太阳生活中还有各种灯红酒绿的地方(说错了)等着你去看啊 各种光源 平行光-太阳或者很远处的光都可以叫做平行光 平行光的光的方向是一个固定的值不变的 vec3 lightDir = normalize(-...

2018-08-16 17:21:59

阅读数:39

评论数:0

Opengl-光照-基本光照-光照贴图(现在告别单调的方块弄个箱子)

前言 前面我们跟着LearnOpengl学习的都是通过怎么定义一些顶点数据弄出一个立方体在三维世界里模拟光照模拟光源。看着是有点真实的样子了。。可是你见过哪个真实世界里都是这些个立方体的,肯定都是真切的物体啊,什么房子,树,石头,木头等等。要怎么模拟这些呢?怎么把这些放进去呢?很简单啊。...

2018-08-16 17:10:10

阅读数:237

评论数:0

Opengl-光照-基本光照-材质(有了材质一个物体才算是完整了)

在现实世界里,每个物体会对光产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶更闪闪发光,木头箱子也不会像钢制箱子那样对光产生很强的反射。每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点,而有些物体则会散射很多,产生一个有着更大...

2018-08-16 16:36:01

阅读数:175

评论数:0

Opengl-光照-基本光照-冯氏(千万好好理解后面所有的延伸基本都是基于这个的)

前言 前面我们基本理解了怎么模拟光,怎么设置光的颜色以及物体的颜色来非常不生动形象的模拟光在计算机中。肯定在想,怎么能真的像生活中那样物体可以反光,然后有凉的地方也有不凉的地方,光也有强弱这种?其实前辈们已经给了一套很好的经验体系–冯氏光照模型 冯氏光照 这图是我从Lea...

2018-08-16 11:46:38

阅读数:94

评论数:0

Opengl-光照-颜色(其实要想做出好看的东西这章最重要了)

前言 前面的基础章节说了下Opengl入门的一些基础知识,通过这些基础知识你可以制作Camera或者让物体移动啊又或者放一张图片上去当做纹理贴图丰富物体的显示 但是其实不论怎么折腾你会发现略微呆板,没有鲜活的感觉。为什么呢?就是因为我们其实想让显示的东西像真实世界一样,然而却忽略了...

2018-08-16 11:01:24

阅读数:94

评论数:0

Opengl-基本章节的学习成果

这就是我们利用基本章节学习的 VBO VAO 纹理 矩阵乘法 坐标系变换 做出来的东西

2018-08-15 19:13:46

阅读数:22

评论数:0

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