\ u 3000 \ u 3000 I . revit中的渲染问题
渲染输出时,经常会出现纯黑效果的渲染图,如图1所示。
这可能是渲染没有光线的原因。
单击打开绘图区域下方的“打开阳光路径”,如图2所示。
如图3所示,您可以清楚地看到阳光路径,并更改阳光路径,使其可以照射到要渲染的区域。
再次渲染,会出现图4所示的效果:
总结:如果渲染时出现纯黑,可能是太阳光路径的问题。被渲染的部分在黑暗面,太阳光照射不到要渲染的部分。通过改变它的照明,它可以被渲染。
II如何在Revit中导入Sketchup模型
在Revit2009及之前的版本中,可以选择通过文件菜单下的导入/链接CAD格式导入sketchup卷,如图1所示。但是在Revit2011中,我们只发现在key菜单下有一个export项,而没有如图2所示的import项。你取消这个功能了吗?
在Revit2010及更高版本中,所有与导入相关的功能都已在插件面板中重新排列。要导入或链接各种CAD格式的文件,只需在如图3所示的插件面板中选择导入(链接)CAD,在弹出的对话框中选择sketchup file.skp即可。
【注意】在Reit中导入SU模型时,最好编辑质量。
PS:建模助手使用基于revit的插件,机电、土建、合成、绘图、施工、族库、按需等所有模块。可以365/年使用。https://www.zhbim.com/?来源=今日头条
渲染出图是什么意思啊
让我们正式看看什么是可微分渲染。
微渲染不仅包括普通的正向渲染过程,还包括反向渲染过程。众所周知,正向渲染是由游戏资源生成图像的过程,而反向渲染是由渲染结果导出游戏资源的过程。当然,这种理解是片面的,但是现在,为了便于我们理解,我们可以这么说。
我们来看看上图。普通的渲染可以看作是一个非常复杂的函数F,它的输入X包括相机位置,方向,物体的顶点位置,纹理,材质参数等等。f的输出就是渲染结果y。
本图中,上半部分为拟合效果图,下半部分为地面真实效果图。输入x_opt和x_gt,分别代表优化和基本事实。他们可以在渲染函数f后分别得到y_opt和y_gt。在我们定义了屏幕空间的可微损失函数之后,就可以得到它们之间的差值Z,得到y_opt的偏导数。
如果渲染函数f可微,我们可以求出y_opt对x_opt的导数,最后用链式法则求出z对x_opt的偏导数。
当这些参数集的导数得到后,整个问题就变成了一个优化问题。可以通过梯度下降和其他优化算法来优化目标函数,以获得最优参数集。此外,可以将各种神经网络添加到系统的上游和下游,用于各种应用。
有可微分的渲染,对上述问题的统一解决方案其实是先渲染高质量图片A,再渲染Lod图片B,在屏幕空间找到它们之间的差异损失,然后找到待拟合参数的梯度,用梯度下降算法找到参数的最优解。实际上,有各种各样的损失函数。要拟合的参数包括模型、材质参数、贴图,甚至着色器函数。
所以剩下的核心问题就是如何让渲染变得可区分。当然,广义的渲染包括光栅渲染、光线追踪渲染、神经渲染等等。今天只能讨论光栅渲染。
与正向渲染过程不同,逆向渲染需要导出大量参数,这是一个难题。例如,一个1024*1024的映射具有大约10的6次方的参数。对于如此大量的参数推导,普通的有限差分算法肯定是行不通的。
然而PyTorch和Tensorflow中的自动微分技术却无能为力,因为它们是为线性代数和神经网络计算而设计的。普通的神经网络应用程序只产生数百个计算密集型操作,如矩阵向量乘法或卷积。但是渲染计算会产生巨大的计算图形,计算负载不均衡,对性能和内存来说太多了。我们将详细介绍如何解决这些问题并实现一个高效的光栅化可微分渲染器。
\ U3000 \ U30002不同渲染管道的实现
以下将按此顺序介绍,首先是可微分渲染流水线的顶层架构,然后是可微分GPU模拟的实现,即如何让光栅化器可微分。接下来是可微分着色器编译器的实现,因为除了光栅化器,着色器也是游戏的重要组成部分,它也需要可微分。最后简单介绍一下下层引擎资产服务器,它负责将引擎游戏资产提供给我们的可微分光栅化器进行拟合和学习,并将结果转化为游戏资产。
首先我们来看看可微分渲染流水线的整体结构,主要包括分布式训练单元和可微分GPU模拟。
训练单元客户端封装并提供场景、素材、动画等数据,配置各种学习策略。
Mythal Core提供核心差分光栅化器。在当前版本中,我们在CUDA/C上实现了完整的高性能正反向渲染流程,GPU版本的性能完全满足资产辅助生产业务例程的要求。其中,光栅化、插值、纹理采样、着色器等部分的核心支持区分。
另外,我们也在追求计划的标准化。因此,我们将mythal的渲染核心封装成一个符合vulkan驱动标准,适配vulkan 1.2 API接口的虚拟GPU。
让我们关注一下Mythal Core的设计和实现。
对于Mythal的渲染核心来说,首先我们面临的是“易于分布式部署和高性能”这两个需求。我们参考了大量的移动GPU设计理念,以及许多现代GPU硬件和商用GPU仿真软件的优秀解决方案。最后通过基于分层瓦片的栅格化构建整个栅格化过程。
在这种层次结构下,一方面可以用宁滨、瓦片等不同粒度组织和部署任务,非常适合未来灵活的部署需求。另一方面,基于tile的结构对缓存更加友好,便于我们在设备上更好地利用L1缓存。
其实我们也是。这种层级结构和CUDA对L1缓存的强大控制,意味着在每一个阶段,数据在计算前都以“生产者”和“消费者”的模式上传到L1缓存,后续实际计算时访问的大量数据都固定在芯片的缓存中。同时,分层可以使每一层的任务划分粒度更小,这也意味着可以方便地利用warp级别的高性能同步机制。最后,我们支持当代GPU硬件上的许多重要功能,以满足高性能目标的需求。右边的列表显示了HTBR的一些重要特征。