荒废了太久,趁着“寒假”死磕了两周,验证了不少想法,解开了不少疑惑,代码质量当然是没有的,一切只为看到结果。

有空了再写每一项的细节。

源码地址

2019/5/12 更新

延迟渲染

GBuffer
世界坐标

世界法线

漫反射

300个点光源

2019/3/6 更新

优化了光源,阴影以及我自己做了一个模型emm...

当我打开3DMax的时候,时间拉回到大约7年前,这是我上一次打开3DMax的时间,当时我在学校机房进行3DMax期末考试,一顿操作猛如虎,定睛一看,一片糊,于是我默默的双击了桌面的CS图标。时间拉回来,我把刚装好的3DMax卸载了,一顿操作行云流水。

2019/2/26 更新

HDR

未开启HDR,亮度超出范围,色彩丢失

开启HDR,整体亮度变暗

法线贴图

应用法线贴图前

应用法线贴图后

视差贴图

原图

仅有法线贴图,没有视差贴图

应用视差贴图后

泛光

关闭泛光渲染

亮度贴图

2019/2/2 更新

标准光照模型

带贴图

多纹理

双纹理混合

放射光贴图

光源

描边

天空盒子

反射

折射

没有反射贴图

加入反射贴图

渲染实例化数组

1秒6千个模型渲染

1秒12万个模型渲染

后期处理

几何着色器

膨胀模型

显示法线

不透,全透,半透贴图渲染

没有忽略草丛贴图空白区域

渲染顺序错误

正确渲染

多相机渲染

方向光阴影(阴影映射)

256分辨率阴影贴图未平滑

平滑后

512分辨率阴影贴图未平滑

平滑后

1024分辨率阴影贴图未平滑

平滑后

动态光源

两个方向光源

阴影贴图

聚光灯阴影(阴影映射)

点光源阴影(点阴影)

阴影立方体贴图

计算机图形——OpenGL的更多相关文章

  1. opengl中相关的计算机图形变换矩阵之:模型视图几何变换

    3. 二维变换矩阵 x'      a11 a12 a13    x         a11x a12y a13z y' =  a21 a22 a23     y    =  a21x a22y a2 ...

  2. opengl中相关的计算机图形变换矩阵之:齐次坐标 (摘编)

    模型视图变换(几何变换)矩阵: 1. 齐次坐标:两条平行线也可以相交. 在欧几里得空间中,两条平行线是无法相交的,但是在投影空间(Projective Space)这条定理就不再适用了. 比如上图中, ...

  3. 【OpenGL】 第一篇 OpenGL概览

    ---------------------------------------------------------------------------------------------------- ...

  4. opengl入门学习

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

  5. OpenGL 坐标与矩阵转换

    1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...

  6. Atitit.计算机图形图像图片处理原理与概论attilax总结

    Atitit.计算机图形图像图片处理原理与概论attilax总结 计算机图形1 图像处理.分析与机器视觉(第3版)1 数字图像处理(第六版)2 图像处理基础(第2版)2 发展沿革 1963年,伊凡·苏 ...

  7. OpenGL基础图形编程

    一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...

  8. OpenGL基础知识

    基本概念 透视(Perspective)变换(Transformation)投影矩阵(Projection Matrix):用于将3D坐标转换为2D屏幕坐标光栅化(Rasterization): 实际 ...

  9. OpenGL图形管线和坐标变换[转]

    1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...

随机推荐

  1. C#_接口基础学习

    参考:https://www.cnblogs.com/hamburger/p/4681681.html

  2. sphinx中文入门指南 (转自sphinx中文站)

    Sphinx中文入门指南 wuhuiming<blvming在gmail.com>,转载请注明来源和作者 最后修改:2010年1月23日 1.简介 1.1.Sphinx是什么 1.2.Sp ...

  3. Windows 10+Ubuntu双系统修复Ubuntu启动引导

    U盘启动,联网 $ sudo su sudo add-apt add-apt-repository ppa:yannubuntu/boot-repair apt-get update apt-get ...

  4. 【android】6大布局

    线性布局 相对布局 绝对布局 网格布局 表格布局 帧布局

  5. python3 兔子繁殖问题

    题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 代码: month = int(input("繁殖 ...

  6. 优酷项目之 ORM(数据库对象关系映射)代码重写

    前言: 我们在操作数据库时候一般都是通过sql代码来操作mysql数据库中相关数据,这就需要懂得sql语句,那么怎么样才能在不懂sql语句的情况下通过我们所学的python代码来实现对mysql数据库 ...

  7. GoF23种设计模式之行为型模式之访问者模式

    概述 表示一个作用于某对象结构中的各元素的操作. 它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 适用性 1.一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依 ...

  8. leetcode-11-dfs

    DFS算法: explore(G, v) visited(v) = trueprevisit(v) for each edge(v, u) in E: if not visited(u): explo ...

  9. poj 2236 网络连接问题 并查集

    题意:n台电脑,当两台之间的距离小于d的时候可以连接. 题目会进行操作“修复”还有“查询是否已经连接”.只要在查询的时候输出YES或者ON 思路: 把可以相互连接的 即两者之间的距离小于 d  q[i ...

  10. 通用的前端js代码

    1.判断是否移动设备的浏览器,是否允许触摸事件.(响应式网页) if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i. ...