计算机图形——OpenGL
荒废了太久,趁着“寒假”死磕了两周,验证了不少想法,解开了不少疑惑,代码质量当然是没有的,一切只为看到结果。
有空了再写每一项的细节。
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的更多相关文章
- opengl中相关的计算机图形变换矩阵之:模型视图几何变换
3. 二维变换矩阵 x' a11 a12 a13 x a11x a12y a13z y' = a21 a22 a23 y = a21x a22y a2 ...
- opengl中相关的计算机图形变换矩阵之:齐次坐标 (摘编)
模型视图变换(几何变换)矩阵: 1. 齐次坐标:两条平行线也可以相交. 在欧几里得空间中,两条平行线是无法相交的,但是在投影空间(Projective Space)这条定理就不再适用了. 比如上图中, ...
- 【OpenGL】 第一篇 OpenGL概览
---------------------------------------------------------------------------------------------------- ...
- opengl入门学习
OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...
- OpenGL 坐标与矩阵转换
1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...
- Atitit.计算机图形图像图片处理原理与概论attilax总结
Atitit.计算机图形图像图片处理原理与概论attilax总结 计算机图形1 图像处理.分析与机器视觉(第3版)1 数字图像处理(第六版)2 图像处理基础(第2版)2 发展沿革 1963年,伊凡·苏 ...
- OpenGL基础图形编程
一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...
- OpenGL基础知识
基本概念 透视(Perspective)变换(Transformation)投影矩阵(Projection Matrix):用于将3D坐标转换为2D屏幕坐标光栅化(Rasterization): 实际 ...
- OpenGL图形管线和坐标变换[转]
1. OpenGL 渲染管线 OpenGL渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection Transformation).做个比 ...
随机推荐
- Bootstrap 模态框 select2搜索框无法输入
去掉模态框的div中的 tabindex="-1" 这个属性 <div class="modal fade" role="dialog" ...
- 【python】python环境搭建
本文主要用于记录python环境的搭建一些不常用的命令,其他的安装步骤在其他大师可以找到就不详细列出了.(注:以下操作都是在Ubuntu14.04LTS版本) 一.环境查询相关 1.查询当前pytho ...
- vue实现与安卓、IOS交互
方案背景 IOS用的是jsBridge插件实现调用.传参.回调的 安卓是在window挂载方法和挂载回调的 IOS实现方案 调用原生方法封装如下 function setupWebViewJavasc ...
- Python头脑风暴2
今天想到了一个致富新途径:假如我在X东上班,我写个X宝爬虫,专门爬在X宝买奢侈品的土豪,然后我自己注册个X宝号,用脚本一个个加他们然后给他们发信息说我X东这还有比你更便宜更好的...不知道行不行啊(狗 ...
- leetcode-11-dfs
DFS算法: explore(G, v) visited(v) = trueprevisit(v) for each edge(v, u) in E: if not visited(u): explo ...
- Linux下ioctl函数理解
一. 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数.所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率.马达的转速等等.它的调用个数如下: i ...
- $ cat /usr/share/doc/wireshark-common/README.Debian
$ cat /usr/share/doc/wireshark-common/README.Debian I. Capturing packets with Wireshark/Tshark There ...
- selenium2等待元素加载
1.硬性等待 Thread.sleep(8000); 所谓的硬性等待就是,执行完相应操作就等待我设置的8s.无论网速快与慢,网速快的话,也许5s就打开网页了,可是程序必须接着等待剩下的3秒. 网速慢的 ...
- Python中的魔术方法详解(双下方法)
介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...
- hdu5443 The Water Problem
The Water Problem Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...