自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 PBRT_V2 总结记录 <35> FresnelBlend

FresnelBlend 类class FresnelBlend : public BxDF {public: // FresnelBlend Public Methods FresnelBlend(const Spectrum &amp;Rd, const Spectrum &amp;Rs, Microf...

2018-10-31 17:28:19 222

原创 PBRT_V2 总结记录 <34> Blinn 和 Anisotropic

概述这里的两个类主要是 上一节中所说的,MicrofacetDistribution 的子类,MicrofacetDistribution 主要代表的是 D 函数,D(wh):distribution function D(ωh) that gives the probability that a microfacet has orientation ωh (判断一个 microfacet...

2018-10-29 23:18:26 230

原创 PBRT_V2 总结记录 <33> Microfacet 和 MicrofacetDistribution

概述(这里 模拟一个金属表面,这个面是由 很多 很细的十分平滑的microfacets(微小的面)组成,这些microfacets 有自己的法线,对于整一个 表面的BRDF来说,需要传入 wi 和wo, 那么,只有那些法线是 wh 的 microfacets ,才会 从wi 方向 反射 光到 wo 方向上)One of the first microfacet models for com...

2018-10-29 00:31:29 306

原创 PBRT_V2 总结记录 <32> OrenNayar

概述:(Oren and Nayar 主要是模拟 粗糙表面的,主要是利用反射模型去模拟)Oren and Nayar (1994) observed(观察) that real-world objects tend not to exhibit perfect Lambertianreflection. Specifically, rough surfaces generally app...

2018-10-28 20:56:42 377

原创 PBRT_V2 总结记录 <31> Lambertian

Lambertian 类:class Lambertian : public BxDF {public: // Lambertian Public Methods Lambertian(const Spectrum &amp;reflectance) : BxDF(BxDFType(BSDF_REFLECTION | BSDF_DIFFUSE)), R(re...

2018-10-27 20:56:31 302

原创 PBRT_V2 总结记录 <30> SpecularTransmission

推导 specular transmission 的 BTDF:We will now derive the BTDF for specular transmission Figure 8.8: The amount of transmitted radiance at the boundary between media with differentindices of r...

2018-10-27 20:30:29 250

原创 PBRT_V2 总结记录 <29> SpecularReflection

概述(SpecularReflection 描述镜面反射效果, 它的BRDF使用 the delta distribution,除了自己的镜面反射方向,其他方向反射都是0)We can now implement the SpecularReflection class, which describes physically plausible(貌似可信)specular reflect...

2018-10-27 16:55:53 203

原创 PBRT_V2 总结记录 <28> Fresnel 和 FresnelConductor 和 FresnelDielectric 和 FresnelNoOp

Fresnel 类:class Fresnel {public: // Fresnel Interface virtual ~Fresnel(); virtual Spectrum Evaluate(float cosi) const = 0;};类的作用:(Fresnel  是 FresnelConductor 和  FresnelDielectric ...

2018-10-27 15:56:25 313

原创 PBRT_V2 总结记录 <27> Fresnel equations

1. In addition to the reflected and transmitted directions, it is also necessary to computethe fraction of incoming light that is reflected or transmitted. In simple ray tracers, thesefractions ar...

2018-10-27 13:15:49 258

原创 PBRT_V2 总结记录 <26> BxDF 和 BRDFToBTDF 和 ScaledBxDF

BxDF 类// BxDF Declarationsclass BxDF {public: // BxDF Interface virtual ~BxDF() { } BxDF(BxDFType t) : type(t) { } bool MatchesFlags(BxDFType flags) const { return (type &amp; flags) == ty...

2018-10-26 23:52:47 628

原创 PBRT_V2 总结记录 <25> Reflection Models 和 The Shading Coordinate System

Reflection Models1. This chapter defines a set of classes for describing the way that light scatters at surfaces.Recall that in Section 5.6.1 we introduced the bidirectional reflectance distribut...

2018-10-26 19:25:12 275

原创 PBRT_V2 总结记录 <24> Film 和 ImageFilm

Film 类class Film {public: // Film Interface Film(int xres, int yres) : xResolution(xres), yResolution(yres) { } virtual ~Film(); virtual void AddSample(const CameraSample &amp;sample, c...

2018-10-23 15:37:24 413

原创 PBRT_V2 总结记录 <23> Filter

Filter 类class Filter {public: // Filter Interface virtual ~Filter(); Filter(float xw, float yw) : xWidth(xw), yWidth(yw), invXWidth(1.f / xw), invYWidth(1.f / yw) { } virtual float Evaluate...

2018-10-22 16:20:44 217

原创 PBRT_V2 总结记录 <22> StratifiedSampler

StratifiedSampler 类// StratifiedSampler Declarationsclass StratifiedSampler : public Sampler {public: // StratifiedSampler Public Methods StratifiedSampler(int xstart, int xend, int yst...

2018-10-21 22:29:37 349

原创 PBRT_V2 总结记录 <21> CameraSample 和 Sample

CameraSample 类struct CameraSample { float imageX, imageY; float lensU, lensV; float time;};类的作用:(这个类代表的就是采样点,传入采样点给Camera ,会根据采样点生成 Ray,传入采样点给 Integrators,会执行光照计算CameraSample 代表的只是作为生成射线的...

2018-10-19 18:20:40 4595 1

原创 PBRT_V2 总结记录 <20> Sampler

总结一下:1. 采样器作用:整个 Film Plane 上的 incident radiance 实际上是一个连续函数 ,但是Pixel是离散的,这些离散的Pixel其实是从incident radiance 连续函数中采样计算出来, 而最终的目的就是利用离散的Pixel去重新构建一个新的函数,逼近 原来的连续函数,采样器就是为了从incident radiance 连续函数采样出来的更好...

2018-10-19 11:32:41 279

原创 PBRT_V2 总结记录 <19> Sampling Theory

概述1. Although the final output of a renderer like pbrt is a two-dimensional grid of coloredpixels, incident radiance is actually a continuous function defined over the film plane.The manner in whic...

2018-10-16 18:34:15 389

原创 PBRT_V2 总结记录 <18> OrthoCamera 和 EnvironmentCamera

OrthoCamera 类// OrthographicCamera Declarationsclass OrthoCamera : public ProjectiveCamera {public: // OrthoCamera Public Methods OrthoCamera(const AnimatedTransform &amp;cam2world, cons...

2018-10-15 11:50:33 312

原创 PBRT_V2 总结记录 <17> GenerateRay 和 Depth Of Field

这次主要是记录 PerspectiveCamera : GenerateRay 函数的思路:// Ray : RasterToCamera -&gt; CameraToWorld , 所以 得到的Ray是World Spacefloat PerspectiveCamera::GenerateRay(const CameraSample &amp;sample, Ray *ray) co...

2018-10-14 16:25:28 288

原创 PBRT_V2 总结记录 <16> Coordinate Spaces Transform(空间坐标变换)

在之前《PBRT_V2 总结记录 &lt;15&gt; Transform 和 Coordinate Spaces》 中 有说过 PBRT 中的各种空间,这次主要记录某一些空间之间的变换是怎么进行的,主要是考虑透视投影。1.  CameraToScreen ( Camera space To Screen space, 注意这里的 Screen space 并不是屏幕空间,可以理解为类似Ope...

2018-10-13 18:56:32 251

原创 PBRT_V2 总结记录 <15> Transform 和 Coordinate Spaces 和 Coordinate System Handedness

Transform 类class Transform {public:Transform Public Methodsprivate:Transform Private Data};类的作用:(Transform 代表的就是一个矩阵,这个矩阵是 行为主的,也就是类似为OpenGL的矩阵计算方式)A transformation is represented by the...

2018-10-12 18:14:41 369

原创 PBRT_V2 总结记录 <14> Camera 和 ProjectiveCamera 和 PerspectiveCamera

Camera 类// Camera Declarationsclass Camera {public: // Camera Interface Camera(const AnimatedTransform &amp;cam2world, float sopen, float sclose, Film *film); virtual ~Camera(); virtual f...

2018-10-12 14:50:02 364

原创 PBRT_V2 总结记录 <13> BRDF

1. BRDF 的 作用: A BRDF, bi-directional reflectance distribution function, is a tool for describing the distribution of reflected light at a surface.  Given an incoming light ray at a point on a surfac...

2018-10-10 14:29:32 343

原创 PBRT_V2 总结记录 <12> RGBSpectrum = Radiance

欢迎纠错: 理解 为什么可以用 RGB 来表示 Radiancea. 在PBRT 中有写到:Radiometry provides a set of ideas and mathematical tools to describe light propagationand reflection.意思就是,辐射度量学 提供了 一套思想和数学工具 来描述 光的传播与放射。 ...

2018-10-06 23:40:42 654

原创 PBRT_V2 总结记录 <11> Light and Color && Measuring Light

1. Light and ColorThe wavelength, λ, of light determines its “color” 2. Describe light by a spectrum (光谱)“Intensity” of light at each wavelengthA graph of “intensity” vs. wavelengthWe care...

2018-10-06 19:38:29 279

原创 PBRT_V2 总结记录 <10> SPD, SampledSpectrum 和 RGBSpectrum

1. 什么是SPD( 波长 对应 多少光 的 分布函数)electromagnetic radiation:flux, intensity, irradiance, and radiance. These radiometric quantities are eachdescribed by their spectral power distribution (SPD)—a distr...

2018-10-05 17:59:45 960

原创 PBRT_V2 总结记录 <9> GeometricPrimitive 和 Aggregate

GeometricPrimitive 类// GeometricPrimitive Declarationsclass GeometricPrimitive : public Primitive {public: // GeometricPrimitive Public Methods bool CanIntersect() const; void Refine(vector&l...

2018-10-04 23:31:52 193

原创 PBRT_V2 总结记录 <8> Primitive 和 Intersection

Primitive 类class Primitive : public ReferenceCounted {public: // Primitive Interface Primitive() : primitiveId(nextprimitiveId++) { } virtual ~Primitive(); virtual BBox WorldBound() const = 0;...

2018-10-04 23:05:42 300

原创 PBRT_V2 总结记录 <7> Shape

Shape 类// Shape Declarationsclass Shape : public ReferenceCounted {public: // Shape Interface Shape(const Transform *o2w, const Transform *w2o, bool ro); virtual ~Shape(); virtual BBox Objec...

2018-10-04 20:44:57 241

原创 PBRT_V2 总结记录 <6> RayDifferential 和 DifferentialGeometry

RayDifferential 类class RayDifferential : public Ray {public: // RayDifferential Public Methods RayDifferential() { hasDifferentials = false; } RayDifferential(const Point &amp;org, const Vector...

2018-10-03 22:06:56 519

原创 PBRT_V2 总结记录 <5> A good way to gain an understanding of pbrt

A good way to gain an understanding of pbrt is to follow the process of computingthe radiance value for a single ray in a debugger. Build a version ofpbrt with debugging symbols and set up your debu...

2018-10-03 15:04:05 174

原创 PBRT_V2 总结记录 <4> WhittedIntegrator

WhittedIntegrator 类// WhittedIntegrator Declarationsclass WhittedIntegrator : public SurfaceIntegrator {public: // WhittedIntegrator Public Methods Spectrum Li(const Scene *scene, const R...

2018-10-03 14:59:27 312

空空如也

空空如也

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

TA关注的人

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