自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (7)
  • 收藏
  • 关注

翻译 Unity2018 Shaders and Effects Cookbook Third Edition 前言翻译

前言        Unity 2018 Shaders and Effects Cookbook 将会是你熟悉Unity 2018中Shaders和后处理(post-procesing)效果的创建指南。你将从一开始就开始您的旅程,探索后处理栈(Post procesing Stack),看看你可以使用shader来影响你所看到的东西一些可能的方法,而不需要编写脚本。之后,我们将从头开始创建S...

2019-01-16 21:37:45 1129

原创 《图形编程技术学习》(三十八)颜色缓冲

一、多种类型的帧缓冲区(Frame buffer)二、颜色缓冲(Color buffer)存储视口中每个像素的颜色三、颜色缓冲所占的存储空间1.Resolution(分辨率):1024 * 7682.像素颜色:采用RGB三个分量来表示颜色,每个分量采用8bits来表示问题:该颜色缓冲需要多大的存储空间?1024 * 768 * 8 bit / 1024 = 61...

2019-10-12 14:09:20 508

原创 《图形编程技术学习》(三十一)OpenGL入门级机器人手臂

一、相关函数1.glShadeModel函数函数原型:void glShadeModeo(GLenum mode);参数说明:GL_SMOOTH:采用光滑着色,独立的处理图元中各个顶点的颜色。对于线段图元,线段上各点的颜色将根据两个顶点的颜色通过插值得到。对于多边形图元,多边形内部区域的颜色将根据所有顶点的颜色插值得到。即有过渡色效果。GL_FLAT:采用恒定着色,使用图元...

2019-10-10 14:23:30 430

原创 《图形编程技术学习》(三十四)常数明暗处理与Gouraud明暗处理?

一、在顶点处理阶段,计算出了三角形每个顶点的光照,那么三角形所覆盖的每个像素的光照值如何得到?光栅化阶段可得到二、Shading (明暗处理、着色)Shading:计算三角形内每个像素的颜色的过程几种常见处理方法常数明暗处理Gouraud明暗处理(Guoraud shading)Phong明暗处理(Phong shading)三、常数明暗处理在默认的图形流水线中...

2019-10-10 14:20:29 2136

原创 《图形编程技术学习》(三十五)Phong明暗处理

一.Gouraud明暗处理的问题1.曲面分隔可能产生错误效果2.高光的丢失3.马赫带效应(即光亮度变化率不连续的边界处呈现亮带或黑带)二.Phong明暗处理1.Phong明暗处理的思想:不是插值光亮度颜色,而是插值法向量。故而也称为”法向量插值明暗处理“2.对多边形顶点处法向量做双线性插值,将插值计算得到的多边形内各片元的法向量代入光亮度计算公式,得到各片元的光亮度...

2019-10-10 14:18:57 3251 1

原创 《图形编程技术学习》(三十六)图形流水线三个阶段的进一步理解

一.顶点处理---光栅化--片元处理二.顶点处理、光栅化、片元处理三个阶段的进一步理解1.Vertex operations的处理对象是顶点;而Fragment operations的处理对象是片元。2.数据的流转:顶点数据——光栅化——片元数据3.光栅化作了什么(1)以三角面片为处理单位,输入是三个顶点的数据,输出是三角形所覆盖的所有像素的数据(2)对顶点数据(颜...

2019-10-10 14:17:12 2094

原创 《图形编程技术学习》(三十三)光照计算发生在流水线的哪个阶段?

一、光照计算发生在哪个阶段?在固定流水线中,光照计算默认发生在顶点处理阶段。为什么要这样作呢?为了效率,顶点相对而言比较少在顶点处理阶段,计算出了三角形每个顶点的光照,那么三角形所覆盖的每个像素的光照值如何得到?光栅话阶段可得到PS.有时候为了更高质量的图片我们也可以采用逐像素光照,这样带来的成本也往往更高。拓展链接:https://en.wikibooks.o...

2019-09-24 10:25:54 530

原创 《图形编程技术学习》(三十二)关于光照的两个问题

一、如何让光源运动?glLightfv(GL_LIGHT0,GL_POSITION,vLitPosition)(1)直接变化vLitPosition中的值;光源可以认为是一个几何物体,将受到其前面的几何变换的影响。思考:理解gluLookAt()对光源的影响gluLookAt()之前有介绍过,这边把官网解释搬过来,方便没有看过的小伙伴直接看函数原型:void glutL...

2019-09-21 11:31:50 186

原创 《图形编程技术学习》(三十)几种光照模式

一、几种光照模式1.方向性光源、位置性光源2.本地视点、无限远视点3.双面光照二、方向性光源与位置性光源方向性光源位置性光源GLfloat vLitPosition[] = {1.0,1.0,1.0,0.0}glLightfv(GL_ LIGHT0,GL_ POSITION,vLitPosition)若vLitPosition的w为0.0,则为方向性光源...

2019-09-20 14:19:03 404

原创 《3D数学基础》提炼总结(三)向量

写在前面,其实这一节的内容几乎高中数学都有讲到过了,本来不想整理,但是有的人可能没好好学数学呢?所以还是写了出来。向量是2D、3D数学研究的标准工具。术语向量有两种不同但相关的意义,一种是纯抽象的数学意义,另一种是几何意义。大部分书只集中讲解了向量的某一种意义,然而为了精通3D数学,我们需要理解这两种意义以及他们之间的关系。一、从数学角度讲解向量、主要包括以下概念:1.向量对于数学...

2019-09-19 15:42:35 737

原创 《图形编程技术学习》(二十九)OpenGL中光照参数的设置

一、OpenGL中的光照参数设置step1.设置好物体的法向!glNormal3f(Nx,Ny,Nz);step2. 打开光照:glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);光源OpenGL可以同时为我们提供8个有效的光源。也就是说,我们最多同时启用8个光源。它们分别是GL_LIGHT0 , GL_ LIGHT1,GL_ LIG...

2019-09-19 11:35:03 1282

原创 《图形编程技术学习》(二十八)Phong等简单光照明的局限性

一、Phong、Blinn等简单光照明模式的弱点1.仅考虑光源直接照射的效果(直接光照)2.没有考虑非光源直接照射的效果(间接光照)二、全局光照模拟 = 直接光照 + 间接光照光线跟踪一个光线跟踪程序数学地确定和复制从一幅图像的光线的路线,但是方向相反(从眼睛返回原点)。真实的世界光线是从光源直接照射到我们的眼镜或者经过多次反弹再到达我们的眼镜,当我们试图用计算机模拟的时候...

2019-09-18 14:54:24 463

原创 《图形编程技术学习》(二十七)这是一个改错题

一、原题代码中有错误导致什么都没画出,你能找出错误吗?源码老师可能是用VS写的,相应注释我这边打开是乱码的,可能用VS的同学能看到,所以也贴出来了。// OpenGLStarter.cpp : Defines the entry point for the console application.//#include "stdafx.h"//–Ë“™∞¸∫¨µƒÕ∑Œƒº˛#...

2019-09-17 20:54:19 432 1

原创 《图形编程技术学习》(二十六)Blinn光照模型、OpenGL中的光照模型

一 .Phong Model二.Phong Model ->Blinn-Phong Model实际使用中,由于R计算不方便,因此常用(N.H)代替(R.V);H为沿着L和V的角平分线的单位向量。三.3DS Max中的材质四.计算机图形学中光亮度的表达三色学说1.十九世纪初,Yaung提出某种波长得光可以通过三种不同的波长的光混合而复现出来的假说...

2019-09-17 11:39:03 237

原创 《图形编程技术学习》(二十五)Phong光照模型

一、光照模型(Illumination Model)1.将光考虑成三种成分的结合(1)Diffuse reflection(漫反射)(2)Specular reflection(镜面反射)(3)Ambient light(环境光)2.环境光环境光非常复杂,但是Phong模型中只采用一个常数来表示之环境光很难计算,它干脆就不计算了,用一个恒定的值来表示,同时环境光打到...

2019-09-17 10:53:23 235

原创 《3D数学基础》提炼总结(二)一些有用的坐标系

一.多坐标系只要选定原点和坐标轴就能在任何地方建立坐标系。但我们不能轻易作出这样的选择,而是要考虑某些具体的条件(在不同场合下可能会使用不同坐标系)。本章给出了一些游戏和图形开发中常用的坐标系,并讨论了坐标系嵌套问题。1.提出对多坐标系的需求。为什么要使用多种坐标系呢?毕竟,任何一个3D坐标系都是可以无限延伸的,可以包含空间中所有的点。因此只需要选定一个坐标系,然后宣城它为“世界”坐标...

2019-09-16 20:59:08 387

原创 《图形编程技术学习》(二十四)OpenGL入门级日地月模型

一、效果图二、源码//// main.cpp// LearnOpenGL//// Created by yingyingzhu on 2019/9/7.// Copyright © 2019 yingyingzhu. All rights reserved.//#include <iostream>#include <GLUT/GLUT.h&...

2019-09-11 10:25:56 1415

原创 《图形编程技术学习》(二十三)光照明模型及三种光照成分

一、光照效果二、如何计算光照明效果?问题的描述景物表面上任一点被光照射后投射后投向观察者眼中的光亮度大小光照明模型(Illumination Model)将上述计算过程表达成一个数学公式三、光照明模型的构建四、光照明模型...

2019-09-09 10:08:03 1191

原创 《图形编程技术学习》(二十二)三维空间中的坐标系和单位

一、三维几何空间中的坐标系OpenGL的默认坐标系和默认视点位置1.右手坐标系2.默认视点在原点3.视线方向是Z轴的负方向二、三维几何空间中的单位是什么?也就是视锥体空间中的单位是什么?定好了单位我们才好设定物体的大小啊?其实:OpenGL的三维空间中无绝对单位,只有相对的大小。相对于视锥体的大小来设定物体的大小。例如,一个球体的半径为1000,你说...

2019-09-07 10:22:26 717

原创 《图形编程技术学习》(二十一)为什么图像变形了?—— 视口变换

一、为什么图像会变形二、视口变换void glViewport(GLint x,GLint y,GLsizeiwidth,GLsizei height);老惯例,先找一下官网介绍上面的单词中dimensions[dɪˈmɛnʃənz]是尺寸的意思,coordinates[koʊˈɔːrdɪneɪts]是坐标的意思 affine transformation是2D仿射变换...

2019-09-06 20:23:43 243

原创 《3D数学基础》提炼总结(一)3D数学和笛卡尔坐标系

写在前面,想学好图形学,数学是必不可少的,市面上想找一本书既包括数学知识又与图形学和编程连续紧密的,这本书算是名气较大的,再加上很多语言比较通俗幽默,读起来不那么想睡觉,所以就是它啦(#^.^#)。当然这里总结的稍微精炼一点,很多原著的东西都没有,毕竟原著388页,而我呢,说不定总结出来的不到200页,哈哈。一、简介1.什么是3D数学3D数学是一门和计算几何相关的学科,计算几何则是研究...

2019-09-06 19:34:38 898

原创 《图形编程技术学习》(二十)定义一个视域空间——投影变换函数的参数

一、Projection1.Perspective projection(透视投影)2.Parallel projection(平行投影)投影变换:给定视点、视线方向,计算出当前顶点的投影点坐标。透视投影透视投影属于中心投影。透视投影图简称为透视图或透视。它是从某个投射中心将物体投射到单一投影面上所得到的图形。透视图与人们观看物体时所产生的视觉效果非常接近,所以它能更加生动...

2019-09-05 11:14:37 530 1

原创 《图形编程技术学习》(十九)全局变换与局部变换

一、全局变换与局部变换1.Global transformation (全局坐标系变换模式,固定坐标系模式,图形模式)①全局变换主要是在全局坐标系,也叫世界坐标系中进行变换,基本是定死的,如下图的第一行变换就是全局变换,正方形在xyz坐标系中,先想(10,0,0)方向平移10,再绕z轴旋转45°②局部变换主要是在局部坐标系,也叫模型坐标系,就是字面意思模型自己的坐标,如下图第二行,第...

2019-09-04 20:21:30 1834

原创 《图形编程技术学习》(十八)模型变换与视点变换

一、模型变换与视点变换Model-View TransformationModel transformation ——视点不变,变物体View transformation ——物体不变,变视点glMatrixMode(GL_MODELVIEW);两者其实是一回事。为简单起见,你目前可以把这些变换都看成是模型变换二、gluLookAt()1.void gluLook...

2019-09-02 10:36:24 296

原创 《图形编程技术学习》(十七)用堆栈来管理矩阵

一、用堆栈来管理矩阵glLoadIdentity();关于glLoadIdentity()上一篇有介绍过,有兴趣者可以去看看。glPushMatrix();glPopMatrix();NameglPushMatrix - push and pop the current matrix stackC Specificationvoid glPushMatrix(vo...

2019-08-31 11:29:56 285

原创 《图形编程技术学习》(十六)平移、旋转、缩放——都是矩阵

一、平移、旋转、缩放——都是矩阵glTranslate*();glRotate*();glScale*()1.为什么要把各种变换表示成矩阵运算的形式?(1)连续变换的矩阵可以组合成一个矩阵(2)变换的组合就是矩阵相乘当前模型变换矩阵:M这里有一个小疑点,根据公式,点P好像是先旋转后平移的,到底是为什么呢,可以思考一下,后续会说到。这里有两点需要注意:...

2019-08-30 10:42:45 846

原创 《图形编程技术学习》(十五)几何变换

一.几何变换概要(1)三种几何变换(2)平移、旋转、缩放------都是矩阵(3)用堆栈来管理矩阵(4)模型变换与视点变换(5)全局变换与据点变换二.三种几何变换平移(Translation) glTranslate()缩放 (Scaling) glScale()旋转(Rotation) glRotate()1.平移(Trans...

2019-08-29 13:44:21 281

原创 《图形编程技术学习》(十三)OpenGLStarter程序问题解答

一,关于OpenGLStarter程序的几个问题1.理解freeglut进行opengl编程的基本模式,体会消息驱动和回调函数;2.函数display(),myReshape()都是什么时候调用的?3.程序中是如何实现键盘控制物体旋转平移的?4.glutIdleFunc()有什么用?5.display()函数中为什么需要调用: glTranslat...

2019-08-26 22:07:33 685

原创 《图形编程技术学习》(十二)OpenGLStarter程序问题解答

一 .关于OpenGLStarter程序的几个问题1.理解freeglut进行opengl编程的基本模式,体会消息驱动和回调函数;2.函数display(),myReshape()都是什么时候调用?3.程序中是如何实现键盘控制物体旋转平移的?4.glutIdleFunc()有什么用?二.(1)Freeglut编程的基本模式main(){ 设置显示模式; ...

2019-08-23 11:31:40 847

原创 《图形编程技术学习》(十一)OpenGL基本语法

一.OpenGL函数的命名规则1.void glVertex3fv(Glfloat *vertex);2.前缀gl,glu,glut ---- 该函数属于哪个函数库3.后缀. 2, 3, 4 -----参数的维度. b, s, l, f, d, ub, us, ui------参数的数据类型. v ---- 以数组方式传递参数二.OpenGL的数据类型数据类型...

2019-08-22 11:25:09 478

原创 《图形编程技术学习》(十)OpenGL相关的库

一.相关的库 .OpenGL Library(核心库) (1)包括115个函数,前缀:"gl" (2) 例如:glColor3f(),glTranslate3f() (3) gl.h,openGL32.lib,openGL32.dll这些函数有三个文件和它们相关 gl.h放这些函数的声明,然后这些函数的真正实现在哪儿,一般来说在Op...

2019-08-21 13:56:46 347

原创 《图形编程技术学习》(九)OpenGL的功能及其两种学习路线

一.OpenGL是什么?.Open Graphics Library(开放的图形编程库).调用图形硬件的程序接口 .大约150个函数组成,用户可以调用来完成各种绘图任务二.OpenGL能做什么?.变换(几何变化,投影,视口变换).光照与材质.纹理映射.图形功能(anti-aliasing(反混淆),fog, blending(混合)...).特效(D...

2019-08-21 10:29:29 597

原创 《图形编程技术学习》(八)Windows配置freeglut、MAC配置freeglut以及配置glut

一.Windows配置freeglutWindows:1.下载Freeglut源码:http://freeglut.sourceforge.net/,2.VS2015中编译该源码工程,生成.lib和.dll文件(.h文件就在源码中)。(你也可以下载最新的,但相应操作可能会有所不同)3.将三类文件拷贝到相应目录下就完成了安装。具体 而言:如果是32位版本,则:1.\inc...

2019-08-20 17:22:18 844

原创 《图形编程技术学习》(七)GPU的应用及未来

一.GPU因其强大的计算能力,被用在各个领域 (1) 高性能计算领域(2)各领域中的大计算量任务 医学、化学、生物、金融、科学计算、图像处理(3)人工智能(4)区块链二.GPU应用实例流体模型二.但是,GPU编程太难?1.用Cg、HLSL、GLSL等进行shader编程需要了解图形流水线,门槛太高!2.通用并行计算平台2007...

2019-08-16 10:20:50 315

原创 《图形编程技术学习》(六)GPU中图形流水线的发展及Shader编程

一:图形流水线二:图形流水线的发展红色区域的图形流水线最初是固定的,后来随着技术的发展具有了可编程功能。三:Vertex Shader of GPU可直接在Vertex Shader 中编程控制顶点的各种属性以前:这个例子模拟一堆球落在一个有弹性的布上,然后弹性的布会变形,然后球又会被弹起来,大概是这么一个动画,这个过程,布的变形是一种物理计算,虎克定律或者弹簧的...

2019-08-15 12:01:35 623

原创 《图形编程技术学习》(五)何为GPU?

一.什么是GPU?GPU:Graphics Processing UnitCPU:Central Processing UnitGPU是显卡中的核心芯片GPU用处理屏幕显示相关的计算;并实现图形流水线拓展:GPU计算量比较大,所以一般GPU上会有散热风扇,一般可以用散热风扇数量来初步判断GPU性能,数量越多性能越高。二.Graphics Pipeline....

2019-08-14 10:52:08 278

原创 《图形编程技术学习》(四)图形开发库

一.三维图形开发相关的库1. 基础图形库 OpenGL,Direct3D2.辅助OpenGL开发的工具库 aux,glut,freeglut,glfw3.辅助调用OpenGL扩展 glew,glad4.基于OpenGL进行轻量级开发的库 bgfx5.用OpenGL做界面的库myGUI,CEGUI... glew,glad6....

2019-08-13 21:21:55 573

原创 《图形编程技术学习》(三)图形流水线总览

一.Graphics Pipeline(图形流水线)逐像素绘制从视点出发,连接像素,引出一条射线,射入场景之中,与场景中物体相交,引出一个交点,然后计算交点的颜色,把颜色填到像素。逐面片绘制(主流)它以物体的面片为处理对象,所有物体都以多边形面片组成,一个面片一个面片的处理,把面片投到二维平面上,然后对二维的三角形执行一个光栅化的操作,求出二维三角形所覆盖的所有像素,然后计算每...

2019-08-09 10:58:02 1391 1

原创 《图形编程技术学习》(二)图形与图像的差别

1.图形(Graph)与图像(Image)图像:一堆像素组成的二维栅格图像是位图(Bitmap),它所包含的信息是用像素来度量的。就像细胞是组成人体的最小单元一样,像素是组成一幅图像的最小单元。对图像的描述与分辨率和色彩的颜色种数有关,分辨率与色彩位数越高,占用存储空间就越大,图像越清晰。图形:含有表示”形”的几何信息图形是矢量图(Vector Drawn),它是根据几何特性来绘制...

2019-08-08 15:19:25 524

原创 《图形编程技术学习》(一)计算机图形学与图形流水线

这个系列是学习北京林业大学林刚教授的课程时的学习笔记,课程简洁易懂又含以重要知识,谨以此分享出来。欢迎勘误~一.计算机图形学的概念及主要研究内容计算机图形学是作什么的计算机图形学(Computer Graphics,简称CG)1.计算机图形学是一门研究如何利用计算机进行的计算、处理和显示的学科。2.简单地说:是一种使用数学算法将二维或三维图形转化为计算机显示器所能显示的二维栅...

2019-08-08 11:34:44 1681 2

作业1附件.zip

图形编程系列的配套代码

2019-08-23

[3D数学基础:图形与游戏开发].(3D.Math.Primer.for.Graphics.and.Game.Development).(美)

游戏开发数学基础,最近看库函数,里面有很多数学公式需要推导,故找到这本书,如果有需要入行游戏开发的可以看一下

2019-07-05

unity3D学习案例

unity3D游戏源码unity3D游戏源码unity3D游戏源码unity2D游戏源码unity2D游戏源码

2018-06-07

CodeBlocks

CodeBlocks轻量的C++编译器,刘汝佳算法竞赛推荐。。。。。

2018-05-10

C++程序设计谭浩强课后习题答案

C++程序设计谭浩强课后习题答案C++程序设计谭浩强课后习题答案C++程序设计谭浩强课后习题答案C++程序设计谭浩强课后习题答案C++程序设计谭浩强课后习题答案

2018-04-12

unity场景有关一些树和简单的花草

unity场景有关一些树和简单的花草

2017-06-20

空空如也

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

TA关注的人

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