自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 blender <3> 渲染

1. 相机的设置和渲染“SHIFT+Z键”:切换渲染模式(预览)“F12键”:开始渲染。Esc 退出返回到3D窗口,可以在菜单 &lt;图像&gt;--&lt;保存为图像&gt; 进行保存渲染的图片“M键”:移动选中物体到不同图层。“小键盘0键”:显示相机视图。选中相机按N打开属性面板-&gt;锁定到视图,可以锁定相机视图,此时移动视图然后渲染所见即所得。渲染窗口:切...

2019-06-25 11:15:18 1275

原创 blender <2> 修改器

1. 表面细分选中物体添加修改器,添加表面细分修改器。表面细分可以配合工具栏-&gt;工具中的着色方式(光滑、平直)使用。快捷键:选中物体按“CTRL+数字键”直接添加表面细分器,数字代表了细分的次数。2. 镜射编辑模式:切分后线框模式下按B框选可以选择背后的边。按X删除顶点。添加镜射修改器,根据XYZ轴选择镜射。(在进行镜射的时候,要先删除)勾选镜射修改器的范围...

2019-06-24 14:27:53 793

原创 blender <1> 基础

参考:https://www.jianshu.com/p/c52605b4b8e81.摄像机视角控制按“SHIFT+F”,此时可以使用WASD和QE来移动视角,鼠标左键确认,右键取消。有时按中键移动视图很慢,按小键盘小数点键恢复一下视图即可。(可以挺方便)2. 中文界面设置 和Cycles渲染"File" -&gt; "User Preference"-&gt...

2019-06-24 13:16:40 263

原创 filament <5> Use IBL

1. 在 sample_full_pbr 的例子中,直接使用 IBL 时候,sample_full_pbr参数的如下-i :设置IBL的目录-m : 物体的PBR材质贴图例如:sample -m assets/models/PreviewSphere_Fabric -i ./envs/Studio_05 assets/models/PreviewSphere_Fabric/Prev...

2019-06-21 11:50:08 297

原创 filament <4> Print Shader

#include &lt;SDL.h&gt;#include &lt;filament/Engine.h&gt;#include &lt;filament/FilamentAPI.h&gt;#include &lt;filament/LightManager.h&gt;#include &lt;filament/RenderableManager.h&gt;#include &lt;...

2019-06-09 17:35:06 132

原创 filament <3> Draw a monkey

#include &lt;SDL.h&gt;#include &lt;filament/Engine.h&gt;#include &lt;filament/FilamentAPI.h&gt;#include &lt;filament/LightManager.h&gt;#include &lt;filament/RenderableManager.h&gt;#include &lt;...

2019-06-03 20:26:56 131

原创 filament <2> Draw a Quad

#include &lt;SDL.h&gt;#include &lt;filament/Engine.h&gt;#include &lt;filament/FilamentAPI.h&gt;#include &lt;filament/LightManager.h&gt;#include &lt;filament/RenderableManager.h&gt;#include &lt;...

2019-06-03 18:14:01 192

转载 shader中ddx/ddy偏導數的原理和簡單應用

https://www.itread01.com/content/1548025400.html

2019-05-31 09:38:38 359

原创 Unity 实现 IBL 的资料

IBL.Diffuse1.Spherical Harmonics and applications in real time graphics:http://xlgames-inc.github.io/posts/sphericalharmonics0/2.Spherical Harmonics and applications in real time graphics ...

2019-03-19 18:19:19 818

原创 LearnOpenGL 总结记录<21> IBL

Shader Codevs:#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec2 aTexCoords;layout (location = 2) in vec3 aNormal;out vec2 TexCoords;out vec3 WorldPos;out ve...

2019-02-09 17:08:20 421

原创 LearnOpenGL 总结记录<20> PBR

Shader Codevs:#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec2 aTexCoords;layout (location = 2) in vec3 aNormal;out vec2 TexCoords;out vec3 WorldPos;out ve...

2019-02-08 19:58:43 316

原创 LearnOpenGL 总结记录<19> SSAO

思路:(主要的目的就是计算 一张保存 每一个像素的 occlusion factor 的texture,occlusion factor的计算就是采样当前pixel 附近的 多个pixel对应的depth,对比深度值,统计有多少个sample pixel的深度值是比当前的深度值要大,直接返回 (统计个数 / 总采样数),[0,1] ,之后就利用这张texture,进行模拟ao效果)The ...

2019-02-05 23:42:11 110

原创 LearnOpenGL 总结记录<18> Deferred Shading

理论:(延迟渲染分为两个阶段,1 : geometry pass,生成所谓的G-buffer,其实就是一系列的texture,每一张texture保存了各种的信息,texture是基于屏幕空间的。2 : lighting pass, 利用G-buffer,也就是一系列texture,进行计算光照效果)Deferred shading consists of two passes...

2019-02-05 19:20:51 98

原创 LearnOpenGL 总结记录<17> Bloom

Let’s illustrate this process in a step by step fashion.1.(先正常渲染场景)We render a scene filled with 4 bright light sources visualized as colored cubes. The colored light cubes have a brightness val...

2019-02-05 13:12:01 88

原创 LearnOpenGL 总结记录<16> HDR

1.  To implement high dynamic range rendering we need some way to prevent color values getting clamped after each fragment shader run. When framebuffers use a normalized fixed-point color format (li...

2019-02-04 23:07:31 107

原创 LearnOpenGL 总结记录<15> Parallax Mapping

思路:(视觉看平面上的A点,其实我们想要得到的是 B点 在heightmap的值是多少,那么一个方法就是,先把cameraPos,和A点变换到切线空间中,求出A点的在heightmap的值H(A)(A点有自己的纹理坐标),然后利用H(A)来缩放V̄,得到P̄,通过A点纹理坐标偏移 P̄.x, P̄.y ,得到近似B点的在heightmap的纹理坐标 )The idea behind par...

2019-02-03 23:32:08 59

原创 LearnOpenGL 总结记录<14> Normal Mapping

Tangent space(切线空间)Normal vectors in a normal map are expressed in tangent space where normals always point roughly in the positive z direction.Calculating the tangent and bitangent vectors is not...

2019-01-31 17:47:11 204

原创 LearnOpenGL 总结记录<13> Point Shadows

生成depth cubemap1. 绑定cubemap 到 framebuffer 上。Again, note the call to glDrawBuffer and glReadBuffer: we only care about depth values when generating a depth cubemap so we have to explicitly tell Ope...

2019-01-31 15:51:01 93

原创 LearnOpenGL 总结记录<12> Shadow Mapping

Shadow Mapping的基本思路就不进行记录了,可以直接看 :https://learnopengl.com/Advanced-Lighting/Shadows/Shadow-Mapping这里记录一些值得注意的地方1.  FrameBuffer 绑定了 GL_DEPTH_ATTACHMENT 为 depthMap,渲染场景生成depthMap的时候,没有写入任何颜色,只是写入了...

2019-01-31 11:38:22 111

原创 LearnOpenGL 总结记录<11> Gamma correction

Example:// render // ------ glClearColor(0.1f, 0.1f, 0.1f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // draw objects shader.use(); ...

2019-01-30 18:45:06 71

原创 LearnOpenGL 总结记录<10> MSAA

思路:(一个像素 有多个subsample,在光栅化的时候,看看三角形覆盖了一个pixel的多少个subsample,假设一共4个subsample,如果覆盖了2个,那么这2个subsample 都保存了这个三角形PS 返回的颜色,其余的2个没有被覆盖的subsample的颜色为黑色,但是最终 这个Pixel 的颜色由 4个subsample的平均值求出)What multisamplin...

2019-01-30 10:32:37 223

原创 LearnOpenGL 总结记录<9> Framebuffers And Post-processing

we can’t use our framebuffer yet because it is not complete. For a framebuffer to be complete the following requirements have to be satisfied:• We have to attach at least one buffer (color, depth or...

2019-01-29 10:31:37 88

原创 LearnOpenGL 总结记录<8> Stencil Testing And Object Outlining

The routine for outlining your objects is as follows:1. Set the stencil func to GL_ALWAYS before drawing the (to be outlined) objects, updating the stencil buffer with 1s wherever the objects’ fragm...

2019-01-28 17:31:11 63

原创 LearnOpenGL 总结记录<7> Depth Value Precision

1. In practice however, a linear depth buffer like this is almost never used. For correct projection properties a non-linear depth equation is used that is proportional to 1/z. What this basically d...

2019-01-28 16:26:57 62

原创 LearnOpenGL 总结记录<6> Phong Lighting Model

Lighting in the real world is extremely complicated and depends on way too many factors, something we can’t afford to calculate on the limited processing power we have. Lighting in OpenGL is therefore...

2019-01-28 10:47:53 119

原创 LearnOpenGL 总结记录<5> Normal Matrix

As of now we’ve been passing the normal vectors directly from the vertex shader to the fragment shader. However, the calculations we’ve been doing in the fragment shader are all done in world space co...

2019-01-28 10:40:34 89

原创 LearnOpenGL 总结记录<4> Camera , View Matrix

// camera/view transformation glm::mat4 view = glm::mat4(1.0f); // make sure to initialize matrix to identity matrix first float radius = 10.0f; float camX = sin(glfwGetTime...

2019-01-26 17:20:02 157

原创 LearnOpenGL 总结记录<3> Matrices, Coordinate Systems

OpenGL 的 矩阵乘法矩阵在左边。 坐标系To transform the coordinates in one space to the next coordinate space we’ll use several transformation matrices of which the most important are the model, view and pr...

2019-01-26 15:52:59 123

原创 LearnOpenGL 总结记录<2> Texture

 // load and create a texture // ------------------------- unsigned int texture1, texture2; // texture 1 // --------- glGenTextures(1, &amp;amp;texture1); glBindTexture(GL_TEXT...

2019-01-26 14:22:54 233

原创 LearnOpenGL 总结记录<1> Graphics Pipeline, NDC, VAO

Graphics PipelineThe first part of the pipeline is the vertex shader that takes as input a single vertex. The main purpose of the vertex shader is to transform 3D coordinates into different 3D coo...

2019-01-26 10:40:51 163

转载 Physically Based Rendering Algorithms: A Comprehensive Study In Unity3D

http://www.jordanstevenstechart.com/physically-based-rendering

2019-01-18 13:05:52 121

原创 PBRT_V2 总结记录 <113> UseRadianceProbes

UseRadianceProbesclass UseRadianceProbes : public SurfaceIntegrator {public: // UseRadianceProbes Public Methods UseRadianceProbes(const string &amp;amp;filename); ~UseRadianceProbes(); ...

2019-01-17 18:45:25 110

原创 PBRT_V2 总结记录 <112> CreateRadianceProbes

// CreateRadianceProbes Declarationsclass CreateRadianceProbes : public Renderer {public: // CreateRadianceProbes Public Methods CreateRadianceProbes(SurfaceIntegrator *surf, VolumeIntegra...

2019-01-17 17:14:42 96

原创 PBRT_V2 总结记录 <111> Light::SHProject 和 PointLight::SHProject

1. void Light::SHProject(const Point &amp;amp;p, float pEpsilon, int lmax, const Scene *scene, bool computeLightVisibility, float time, RNG &amp;amp;rng, Spectrum *coeffs) const { for ...

2019-01-16 18:38:50 86

原创 PBRT_V2 总结记录 <110> SHTerms 和 SHTerms 和 SHEvaluate

1.inline int SHTerms(int lmax) { return (lmax + 1) * (lmax + 1);}作用:(根据 lmax 的,计算 basis functin 的数目,参考:《PBRT_V2 总结记录 &amp;lt;109&amp;gt; Spherical Harmonic (SH) Basis Functions》就可以知道, Lmax = 1 的时候...

2019-01-16 18:22:00 163

原创 PBRT_V2 总结记录 <109> Spherical Harmonic (SH) Basis Functions

概述:The spherical harmonic (SH) basis functions are an orthonomal basis defined over theunit sphere; they are essentially a generalization of the Fourier basis to that domain(Section 7.1.1). Recall...

2019-01-16 16:16:07 147

原创 PBRT_V2 总结记录 <108> Basis Functions : Theory

概述The idea here is to take a generally infinite-dimensional space of functions (pixel radianceas a function of light-source position) and represent them with a specific set of basisfunctions and c...

2019-01-16 13:53:21 96

原创 PBRT_V2 总结记录 <107> DipoleSubsurfaceIntegrator (Subsurface Reflection)

概述The bidirectional scattering-surface reflectance distribution function (BSSRDF) was introducedin Section 5.6.2; it gives exitant differential radiance at a point on a surface pogiven incident di...

2019-01-14 16:40:28 153

原创 PBRT_V2 总结记录 <106> SingleScatteringIntegrator

SingleScatteringIntegratorclass SingleScatteringIntegrator : public VolumeIntegrator {public: // SingleScatteringIntegrator Public Methods SingleScatteringIntegrator(float ss) { stepSize =...

2019-01-10 15:03:17 99

原创 PBRT_V2 总结记录 <105> EmissionIntegrator

EmissionIntegratorclass EmissionIntegrator : public VolumeIntegrator {public: // EmissionIntegrator Public Methods EmissionIntegrator(float ss) { stepSize = ss; } void RequestSamples(S...

2019-01-10 11:46:04 83

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