摘要:我们利用http://www.dedalo-3d.com/index.php?filename=SXCOL/experiments/ss_scattering_python.html介绍的方法通过PRT来模拟SSS效果。 我们在文章中看到用来计算最终的颜色值的计算公式为: 公式中的RGBpi和RGBscattered都是不考虑SSS情况下计...
阅读全文
随笔分类 - 自己的想法
摘要:GPU加速Diffuse Cube Map计算
阅读全文
摘要:我们在考虑Volume的In-Scattering的情况的时候,如果假设Volume的微粒是各项同性的话,那么我们的相位函数p(w1,w)=1/(4*PI)就可以使用一个常量来表示......
阅读全文
摘要:PRT计算Volume Rendering,使用硬件加速计算Volume Rendering的近似结果
阅读全文
摘要:在CSDN上回了一个关于classtemplateconvertoperator的函数指针的贴子,简单的说是这样的: classA { public: template operatorT*() { returnnewT(100); } }; 现在我想获得A::operatorint*的函数指针,我该怎么做? 我用了中...
阅读全文
摘要:这次还是CSDN上的帖子的问题: 重载operator&之后 一个类A重载了operator&,然后对于它的一个对象aaa,&aaa就成了去调用这个成员函数了。但现在我想取aaa的地址,自么办? 另:这个类我没办法修改。 我的做法是:中间层 template T*GetPoint(T&t) { classPoint:publicT { inttt;...
阅读全文
摘要:第一个是用TypeList产生一个分发器。 //Dispatech //TL为TypeList //F为实现函数的类 templateclassF,typenameFUNC> classDispetcher { mapm_function; template voidBuild() { pairt_pair; t_pair.first=H::Hea...
阅读全文
摘要:有下面的一个类 classA { public: A(intt) { }; voidplay() { }; }; 这个类有个隐式转换构造函数。 constA&a1=10;//ok,调用隐式构造函数构造临时对象,并且延长临时对象的生命周期。 A&a2=10;//error,隐式转换构造函数构建的临时对象是右值(...
阅读全文
摘要:假设我们有一个类型T,我们如何知道它是否是个函数? 我们定义下面的一个类 template classIsFunctionT { private: typedefcharOne; typedefstruct{chara[2];}Two; template staticOnetest(...); te...
阅读全文
摘要:在C++中函数的重载能使我们写出幽雅的代码,但是隐藏在其后面的选择机制确令人迷惑.一个简单的例子: classBadString { public: BadString(charconst*); char&operator[](size_t); operatorchar*(); }; BadStringstr("correkt"); s...
阅读全文
摘要:一个CSDN上的贴子: 我现在有一个类 template classArray{...}; 需要实现如下函数 voidMyFunc(constArray&x,constArray&y); voidMyFunc(constArray&x,constArray&y); ... 请问如何用一个模板函数来实现?进一步...
阅读全文
摘要:今天在>看到一个奇怪的用法 template classShell{ public: template classIn{ public: template classDeep{ public: virtualvoidf();...
阅读全文
摘要:我们知道函数参数推断的时候,有可能会产生Array-To-Point这样的转化(见"C++函数重载时候的匹配等级"的第二条).例如: voidfoo(constint*); inthu[10]; foo(hu);//ok,这里就是Array-To-Point的转换 但是当我们的函数的参数是引用的时候,这样的转化被抑制了 voidfoo(constint*&); ...
阅读全文
摘要:这是>中一节的小标题. 随着Template的大量使用,我们陷入了这样的一个境地.虽然有编译时期的检测,但是往往面对编译错误,我们却无从下手.特别是当你面对不是很熟悉的"组件"的时候. std::listcoll; //Findthefirstelementgreaterthan"A" std::list::iterator...
阅读全文
摘要:ShadingLanguageDifferences
阅读全文
摘要:我们知道在STL中函数对象发挥着很大作用: find_if(coll.begin(),coll.end(),bind2nd(greater(),42)); 这里bind2nd就是一个函数对象,他提供了operator()的处理,是的我们可以象调用函数一样操作,这也就是他名字的由来. find_if的第三个参数我们也可以使用传递函数指针,比如 bo...
阅读全文
摘要:看到这个题目你可能会觉得奇怪,CRTP是TheCuriouslyRecurringTemplatePattern的缩写. 我们先来看一个简单的例子: template classCuriousBase{ … }; classCurious:publicCuriousBase{ ...
阅读全文
摘要:上一篇我们分析到得出了场景的平均亮度值。下面如果我们不打算做Star和Bloom效果的话,我们可以直接使用这个亮度值来进行我们最后的调整,获得最后的画面。但是如果HDR缺少了Star和Bloom或类似的效果的话,就如同太阳失去了光芒一样。不过在进行我们的Star和Bloom效果处理之前还有一个问题需要解决,这个问题和这些效果没什么关系。我们知道我们的眼睛当遇到强光的时候,并不是一下子就...
阅读全文
摘要:我自己写的关于SphericalHarmonicLighting的介绍的第一篇 http://bbs.gzeasy.com/index.php?act=Attach&type=post&id=1432258
阅读全文
摘要:粗略的看了NVIDIA的DawnSamples中的全局光照的算法描述,似乎是求出L*max(0,dot(N,l))的积分,按照N保存在一张CubeMap中,渲染的时候用法线索引出这个值再乘上vs中按照顶点的遮挡因子V插值得到的遮挡因子,最终得到最后的光照结果. 还不清楚顶点的遮挡因子是怎么求出来的,但是这样的近似似乎有个比较好的改进的地方.首先我们知道正确...
阅读全文

浙公网安备 33010602011771号