- 博客(32)
- 收藏
- 关注
原创 PBRT_V2 总结记录 <35> FresnelBlend
FresnelBlend 类class FresnelBlend : public BxDF {public: // FresnelBlend Public Methods FresnelBlend(const Spectrum &Rd, const Spectrum &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 &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 & 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 &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 &cam2world, cons...
2018-10-15 11:50:33 312
原创 PBRT_V2 总结记录 <17> GenerateRay 和 Depth Of Field
这次主要是记录 PerspectiveCamera : GenerateRay 函数的思路:// Ray : RasterToCamera -> CameraToWorld , 所以 得到的Ray是World Spacefloat PerspectiveCamera::GenerateRay(const CameraSample &sample, Ray *ray) co...
2018-10-14 16:25:28 288
原创 PBRT_V2 总结记录 <16> Coordinate Spaces Transform(空间坐标变换)
在之前《PBRT_V2 总结记录 <15> 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 &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 &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关注的人