ptc ao image pipline

Point Cloud Creation

 

Converting a scene into a point cloud representation is a straightforward task but care must be taken to ensure the correctness and the optimality of the operation. One should start by disabling all the culling operations to ensure that backfacing and hidden surfaces are not rejected by the renderer prior to shading: 

常见ptc很简单,但是需要注意的是首先要关掉所有物体的culling operation  即让场景中的所有物体都参与转换 

Attribute "cull" "backfacing [0] 
Attribute "cull" "hidden" [0] 

Additionally, one should use a dicing method that is independent from the camera view to have correct sampling of points on objects' silhouettes:

设置物体独立的dicing 使物体正确采样 

 

Attribute "dice" "rasterorient" [0]

 Since the quality of the image is not important during this first pass, one can lower the filter size for fast rendering

正确设置图片的filter ,因为ptc pass中图片质量可以忽略所以可以最大限度的降低图片质量 

PixelSamples 1 1 
PixelFilter "box" 1 1 


Since no shading is performed during this pass, all surface shaders can be removed from the scene(54) and replaced by a shader that converts micro-polygons to points. The general structure of such a shader is given below:

使用bake ptc 材质替换覆盖场景中的所有材质 ;一个简单的bake ptc的材质:

/* A simple surface shader to write out the micro-polygons into a
point cloud file. */
surface ptc_write(
string ptc_file = "default.ptc";
string ptc_coordsys = "world"; )
{
bake3d( ptc_file, "", P, N,
"coordsystem", ptc_coordsys,
"interpolate", 1 );
Ci = Cs;
}

关于上述材质:

 1.bake3d() saves the points as disks, and not dimensionless points. This is performed by taking the area of each micro-polygon using surface derivatives. If needed, it is possible to manually specify the area of a micro-polygon tobake3d():

   bake3d() 是将points 存成disks 而不是无方向的points。如果需要可以手动指定特定的区域转换:

  ...

    float A = area( P, "dicing" );
    bake3d( ptc_file, "", P, N,
        "coordsystem", ptc_coordsys,
        "_area", A,
        "interpolate", 1 );
    ... 

It is suggested not to specify the `_area' channel if it is equal to area(P, "dicing") (see area shadeop) since this will increase the size of the point cloud file unnecessarily (3Delight already stores that area in the point cloud file).看不懂 

 

 2.The `interpolate' parameter passed to bake3d() is important: since we wish to convert micro-polygons to points, we are interested in micro-polygons' centers and not corners (see bake3d shadeop). Omitting this parameter may lead to unexpected results in the point-based occlusion algorithm. 'interpolate' 参数很重要,因为我们想要的是mico-polygons变成point, 我们要的是micro polygon的中心点center 而不是corners..

忽略这一参数回使ptc occ算法变得不正确 

3.The normal passed to bake3d() is not a faceforward() version of the normal. This is important since we need the original surface normal and not an altered one. This also implies that scene geometry should be consistantly oriented in order to get correct results.

传递的normal信息应该是原始的nomral信息而不是加工过的faceforward() version 版本 

 If one is to compute point-based color bleeding effects, an additional `_radiosity' channel should be stored in the point cloud file:

 如果需要计算给予ptc的color bleeding效果,需要在ptc文件中增加‘-radiosity通道:

 ...
    color rad = compute_surface_radiance();
    bake3d( ptc_file, "", P, N,
        "coordsystem", ptc_coordsys,
        "_radiosity", rad,
        "interpolate", 1 );
    ...

Note that point-cloud creation should be very rapid, so there is no real problem when rendering animated sequences since a point-cloud can be created for each frame (as apposed to baking where it is a good thing to re-use baked data for many frames). baking Ptc通道应该很快,所以算然序列也什么问题。

 

Point Cloud Use

... 

转载于:https://www.cnblogs.com/rdRoad/archive/2009/11/02/1594854.html

主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的表现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值