精华内容
下载资源
问答
  • 云渲染

    千次阅读 2016-02-01 17:35:15
    云渲染的模式与常规的云计算类似,即将3D程序放在远程的服务器中渲染,用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端中发出,服务器根据指令...
    云渲染的模式与常规的云计算类似,即将3D程序放在远程的服务器中渲染,用户终端通过Web软件或者直接在本地的3D程序中点击一个“云渲染”按钮并借助高速互联网接入访问资源,指令从用户终端中发出,服务器根据指令执行对应的渲染任务,而渲染结果画面则被传送回用户终端中加以显示。[1] 
    中文名
    云渲染
    外文名
    Yunxuanran
    性    质
    网站
    分    类
    软件

    3D大时代的变奏曲 走进云计算渲染技术编辑

    将应用程序从本机搬到网络,由超级计算机集群负责运行,用户终端只需要通过Web就能访问到所需的应用——这便是“云计算”的概念。而普遍认为,适合云计算的应用主要为Office办公软件、电子邮件、即时通讯、多媒体播放等,但AMD在今年的CES上提出了新的构想:“云渲染”,即把繁重的3D渲染也搬至互联网上。这一构想提出之后,立刻引起外界的瞩目。现在我们就来看看这种渲染技术的奥妙吧。
    云渲染系统要求服务器具备惊人的图形性能云渲染系统要求服务器具备惊人的图形性能

    技术基础——构建云渲染的要素

    云渲染所要面对的困难远比常规的云计算应用要更复杂,这主要来自于3D渲染对于硬件性能以及指令响应的苛刻要求。我们知道,今天的3D游戏对于GPU性能要求苛刻,假如你想获得1080p的高清渲染,那么没有顶级图形系统将很难保证游戏的流畅运行。而云渲染系统要面对的可能是成千上万用户的渲染请求,这对于后端的服务器系统而言将是巨大的压力—与常规的云计算应用相比(比如Gmail、Google Docs等商用程序到科学计算),云渲染在满足同样数量的用户需要时、所需耗用的硬件性能至少要高出云计算数倍至数十倍,这意味着提供云渲染服务的计算系统将非常庞大。
    云渲染系统要求服务器具备惊人的图形性能,否则无法满足大量用户同时渲染的请求
    云渲染的第二个难题在于,3D游戏对于用户指令的响应高度敏感,譬如在CS之类的激烈对战游戏中,用户指令必须得到及时响应,若稍有延迟,你所控制的游戏对象就有被一枪爆头的风险。而指令延迟则取决于用户终端与服务器的网络接入性能—很显然,今天国内的网络无法承受这一点,但在日本、韩国和一些欧美地区,宽带接入普遍在50Mbps以上,其中网速最快的日本都采用光纤到户、接入速度高达100Mbps,而能达到如此之高的网速,延迟时间一般都不会成为问题,因此客观上这些地区的网络环境,应该可以满足云渲染所需要的快速响应
    用户通过终端发出控制指令,服务器收到指令后即时完成渲染任务,渲染出的画面同时传回给用户终端—那么这里又产生了新的问题:3D渲染一般要在30fps以上用户才会感觉画面流畅,而未来的游戏普遍要达到1920×1080分辨率,一般传输码率要高于10Mbps,对于基础设施好的地区,这样的数据要求可以轻易满足。
    作为云计算的先驱,IBM和SUN都无力单独发展云渲染平台,因为云渲染的任务中枢在于
    GPU,其次才轮到CPU。由于AMD同时拥有高性能处理器和高端图形技术,自身即已具备构建云渲染平台的实力,所以“云渲染”概念由AMD提出、而非IBM或SUN提出并不奇怪。尽管AMD没有对云渲染提出更多的具体实现方案,但它为3D游戏工业指明了一个崭新的方向,相对于传统的本机渲染,云渲染模式对于许多用户都有致命的诱惑力,这足以预示着云渲染的光明前景。

    AMD展示云渲染应用

    在CES展会上,AMD与OTOY、EA等合作伙伴一道演示了“AMD Fusion Render Cloud”云渲染技术。在该演示中,AMD首先采用一台配置Phenom Ⅱ X4处理器、Radeon HD 4870 X2的顶级台式机中渲染Electronic Arts的“雇佣兵2:战火纷飞”游戏,然后渲染画面通过有线网络发送到一部基于Yu kon平台的HP Pavilion dv2超薄笔记本电脑上,用户在笔记本电脑中对游戏进行控制,指令通过网络再传送至台式机,台式机则将渲染结果传回、显示在笔记本电脑的Web界面上。
    此时笔记本电脑就相当于一部客户机端、只做显示和键鼠输入控制功能,游戏的全部处理工作都在远程完成。同时,AMD还演示了云模式下的高清解码:用户在笔记本电脑上使用浏览器远程播放了一段1080p蓝光电影,而实际上视频解码工作则是在台式机中完成的。尽管用于演示的笔记本电脑性能只比普通Atom上网本强一点,但是无论3D渲染画面还是蓝光视频都表现得非常理想,这当然是背后那台高性能PC的功劳。
    AMD的这套云渲染演示系统目前还是基于有线网络,AMD表示该方案将支持无线互联网传输,虽然AMD未透露云渲染需要多大的带宽,但我们在前文中已经通过分析得到结论。必须提到的是,这套云渲染系统并非由AMD单独构建,关键的中间件则是AMD的技术合作伙伴OTOY所提供,双方还计划在2009年下半年推出一款基于AMD Fusion Render Cloud的超级计算机—这款超级计算机将突破每秒千万亿次浮点运算大关,并配备1000多个顶级图形处理器来处理100万个的计算线程,预计它也将成为史上图形效能最出色的超级计算机。
    AMD与OTOY计划将这部超级计算机作为云渲染服务器,借助这套系统,内容提供商可以在互联网上提供云渲染服务,将视频游戏、PC应用以及其他图形密集应用传输给任何有高速网络接入的访问终端。同时这套超级计算机还将面向电影工业和游戏工业,比如帮助制片厂提高电影的交互性、缩短特效制作时间以及帮助游戏开发公司开发更逼真的游戏等诸多用途。
    在展示会上,AMD的合作伙伴均表达了对云渲染的乐观看法,EA公司首席内容官Richard
    Hilleman认为云渲染将对视频游戏未来发展的深远影响,未来带有Web浏览器和互联网连接的任何设备都可以运行高复杂度的3D游戏,而在过去这些游戏只能在具有顶级配置的台式机中进行。
    Troublemaker Studios的导演Robert Rodriguez则表示:“AMD云渲染技术将可用于创建互动性电影和游戏视觉效果,然后通过新的传播方法提供给更广泛的用户,这将会带来内容创建和消费领域的复兴。”OTOY首席执行官Jules Urbach也认为:“AMD云渲染技术将业内领先的CPU技术与计算密集、大规模并行的图形处理器融为一体,可以与世界上最强大的工业计算设备相媲美,但是所需要的空间、功耗以及成本只是许多超级计算机的零头。而AMD云渲染技术与OTOY软件平台相结合,将改变了整个娱乐业,打破技术障碍,为消费者带来一流的内容体验。”

    云渲染具有哪些优势

    假如AMD云渲染平台走入实用化,我们便会发现电子游戏的模式将产生深刻变革:
    ●云渲染让玩家可以在任何轻量级的终端上获得高质量的3D渲染,比如说你可以在智能手机之类的掌上设备中玩《极品飞车13》或者更新的3D大作,终端性能变得不那么重要;
    ●云渲染服务商可以根据资费多寡提供不同质量的云渲染服务,比如愿意多花费的用户可以获得高清、全效果的渲染,租用更多的计算资源;而那些使用掌上终端或费用有限的用户则可以选择质量较低的渲染,这样只需支付较少的费用,使用方式十分灵活。
    ●云渲染模式意味着全球玩家可以在同一个计算集群中共同分享游戏快乐,当然他们也可以构建惊人数量的协作,比如上百万玩家可以在一起连线打类似CS的战地游戏,只要服务器集群能够提供足够强大的3D渲染能力,就能够构建起媲美真实的战场,换言之现实的战争可以完全被虚拟化—在目前的单机模式时代,上述情形更多只是幻想,能够在同一个局域网内玩这些游戏都已快成为奢望,而现在流行的网络游戏大多只有升级打怪之类的无聊玩意。
    ●云渲染能够让用户摆脱对于地域和设备的依赖—假如你现在想玩大型3D游戏,那么高配置的台式机是必然的选择,虽然各大PC厂商都有推出配置奢侈的游戏笔记本,但这类产品普遍是配备17英寸大屏幕的“重量级”产品,基本上别指望能拿它经常到处走,也就是说你只能老老实实坐在电脑桌前享受3D大作的快感。云渲染令这种羁绊消弭于无形,用户可以在任何一种终端设备中干同样的事情,通过智能手机也能获得过去高性能游戏PC才能提供的卓越效果。
    云渲染不仅仅只是给3D游戏带来变革,在生产力创建领域,云渲染同样将发挥巨大的威力。目前在建筑、汽车、飞机、轮船等设备的设计中,普遍已使用到3D技术,设计师可以在屏幕上随时变更设计方案和快速验证,但如果要进行多部门的协作就不是那么容易—因为跨国公司的设计部门往往分布在许多国家和地区,要让他们一起协作,最好的办法就是将设计人员派驻到某地;但假如需要多部门的全方位密切合作,问题就随之出现。而改用云渲染可以很好地解决这些问题:一个设计中的产品在云服务器中渲染生成,来自各个国家或各个地区的设计师可以在同一个平台中进行设计,彼此直接交流看法并作出结论,修改后的设计共同验证,这相当于将所有设计者紧密地联结在一起:内耗因素完全消除,个人创意均可得到发挥,最终整个团队能够以最高效率完成设计工作,而且也意味着能够获得高质量的设计作品。

    云渲染将引发产业界的连锁反应编辑

    作为用户,我们期待云渲染能够进入现实。但对于IT业界而言,云渲染将带来深远的变革,某些公司可以从中获得广泛的商机,而有些公司则将因云渲染受到严峻的冲击。
    只要互联网接入不成为瓶颈,云渲染就会像病毒一样快速流行,传统的单机游戏销售模式也将被迅速边缘化。不过,作为内容提供者的游戏厂商将成为云渲染时代的大赢家:虽然游戏不再销售给终端用户,但云渲染服务商对于优质游戏资源如饥似渴,游戏作品更可能采用开发商与云服务商分成的模式进行运作,假如一个玩家一个月在某款游戏中花费10元,那么若按五五分账计算,游戏开发商就能净得5元,目前普遍存在的盗版行为或许会不复存在,同时云渲染需要耗资巨大的服务器集群,私服之类的东西根本不可能出现,游戏开发商将在云时代变得更为强势—正比如好莱坞在
    Blur-ray Disc和HD DVD之间掌握主导权一样。
    CPU和GPU厂商同样要面对新时代的到来—既然高性能PC不是那么必要,用户也更愿意将资金花费在更能带来效果增益的屏幕或云服务花费上,那么面向个人的处理器和图形产品不可避免陷入萎缩。但另一方面,云渲染对于高性能处理器和GPU如饥似渴,这样看来,AMD和NVIDIA的GPU虽然面临个人市场的萎缩,但云渲染领域对于高性能GPU的需求却将大幅增长,显然这对于图形工业将是非常有力的促进。
    作为云渲染概念的发起者,AMD又同时拥有两项关键资源,理论上说如果AMD直接转型为云渲染服务商,是没有任何技术问题的。不过,AMD自身财力有限,且一贯作为平台的幕后驱动者,它不太可能直接成为云服务供应商,IBM、SUN、Google、微软、索尼这样的企业更有机会成为云渲染的实施者。谈及云渲染时我们不得不谈到游戏机产业—同样,它们在云渲染时代将以新的面目存在:索尼未来的PS4与微软的下一代Xbox,或许既可以作为游戏机终端,也可以直接用于构建云渲染服务器系统,索尼与微软将在线上为玩家们提供游戏服务。鉴于互联网带来的用户基数放大,朝向云渲染转型能够让它们获得更多的收益。此外,掌握互联网基础资源的电信运营商也有望成为云渲染时代的胜利者—这些运营商普遍拥有雄厚的资金实力,加上掌握基础资源,直接构建云渲染服务平台是非常现实的选择。由于带宽成本方面的优势,电信企业所提供的云渲染服务将会极具竞争力。
    而Intel公司或许将成为首个正视云渲染挑战的企业:首先,云渲染让高性能PC不是那么重要,Intel的PC处理器业务将因此受到冲击,唯有服务器业务能够保持惯有的竞争力水平。其次,Intel目前积极发展自己的Lar rabee高并行处理器,它也将用于图形渲染,但假如Larrabee无法提供与
    NVIDIA、AMD同时代产品相当的性能,那么很难获得云渲染服务商的青睐。同样将面临挑战的还有
    Intel的盟友、传统意义的PC厂商们—PC的重要性将不断下降,智能手机、Netbook等便携终端的重要性不断提升,未雨绸缪谋求转型是最好的选择。
    ARM、VIA与Linux们或将成为云渲染时代的受益者。ARM处理器以出色的功耗表现统治了嵌入市场,现在又朝向Netbook领域伸出触角——在云渲染时代,用户用哪一种设备根本无关紧要,用Windows抑或Linux同样不是那么重要,而设备的电池续航力与成本则地位凸显。最终我们将看到
    ARM之类的非X86处理器进入用户终端市场,现在铁板一块的X86 PC将逐渐瓦解。软件方面,Linux系统会给Windows带来越来越大的压力,云渲染的出现更加剧了这种趋势。

    迎接改变——云渲染之未来

    作为一项构想,云渲染从概念到现实也许仍需漫长的行程,但我们今天已清楚地意识到,云渲染并非科学幻想,而是即将到来的现实。宽带网络发达的日本和韩国现在就有条件构建云渲染环境,美国和欧洲发达国家也即将有条件实施云渲染。不过我们应该清楚地意识到,云渲染永远都不可能将现有的本机运行模式淘汰—无可否认,云渲染拥有许多优点,但它同样存在可靠性不高的致命不足:服务器总会遭遇宕机,或者网络线路因某种原因中断,这些偶然因素都会导致云渲染服务无法正常提供。完全依赖云渲染的用户此时会茫然不知所措,而传统的本机渲染模式此时可以派上用场了。
    身处于技术密集变动的行业,IT企业应该时刻做好响应变革的准备。云计算意味着一个新时代的到来— 假如你有清醒的头脑,应该意识到云计算不是一张空头支票,它将带来生产力的进化,同时也将改变人类社会的未来。

    国内外云渲染农场介绍

    作为提供渲染服务的各渲染农场,目前也有不少农场积极转型,开始提供便捷的云渲染服务。相对于传统渲染农场,云渲染农场具有如下特点:
    24小时服务
    通过互联网随时随地提交渲染任务
    实时查看渲染结果
    通过网络下载渲染结果
    在线支付渲染费用
    国外的常用的云渲染农场有:respower,renderrocket,rebusfarm,foxrenderfarm等等
    国内也有自主研发的云渲染平台RenderBus云渲染农场、CSRender、渲云、龙渲云渲染平台。
    参考资料
    词条标签:
    计算机学  互联网  云渲染
    展开全文
  • 随着云计算的成熟,越来越多的应用在云的帮助下飞速的发展,今天,我们来聊一聊渲染行业,云渲染一般分为CPU渲染和GPU渲染两种。 一、趋势分析 1、渲染业务云化发展 渲染成本下降,渲染效率提升是行业最主要竞争...

    随着云计算的成熟,越来越多的应用在云的帮助下飞速的发展,今天,我们来聊一聊渲染行业,云渲染一般分为CPU渲染和GPU渲染两种。

    一、趋势分析

    1、渲染业务云化发展

    渲染成本下降,渲染效率提升是行业最主要竞争力。线下自建对比云渲染劣势明显。

    2、算力要求大,资源使用率不合理

    渲染节点一次渲染一帧,集群越大,渲染速度越快,总体资源利用率很低,但是高峰期资源又不够,无法满足企业灵活的业务形态。

    3、集群规模重,管理维护复杂度高

    渲染集群,大量物理机监控、告警管理复杂,消耗大量人力,在维护方面企业往往投入很多人力、物力。

    4、建设维护成本高,上线周期长

    建设私有渲染农场需要购买大量的IT资源,成本高。IT资源采购,部署周期长,无法满足业务快速上线需求。

    二、业务挑战 

    1、资源预测难,自建费用高

    渲染业务需求为波动型曲线,业务闲暇时,资源浪费;业务繁忙时,资源不够; 建设私有渲染农场需要购买大量的IT资源,成本高。

    2、渲染效率低

    基于通用服务器技术,单次渲染任务需要几十个小时;集群负载过重时,任务时延波动过大。

    3、存储规格要求多样

    渲染集群同时访问共享存储,对共享存储带宽要求较高;海量数据保存需低成本型存储。

    4、交付效率低,运维复杂

    自建环境周期长,安装部署复杂度高,后期运维扩容难度大; 大量物理机监控、告警管理复杂,消耗大量人力,无法聚焦自身业务。

    三、解决方案架构

    业务描述

    渲染业务是高性能计算的重要应用领域之一,针对不同的业务场景、渲染需求不尽相同,需要的计算需求也各自不同,华为高性能计算解决方案可以为企业提供端到端的计算服务。

    灵活弹性的高性能云服务器

    多种规格的ECS计算实例以及基于裸金属(BMS)计算实例的胖节点等数十种规格可供选择,匹配不同HPC应用对计算、内存的配比需求。

    卓越性能的裸金属服务器

    按照专属物理服务器方式提供卓越的计算性能,无虚拟化损耗,具备优良的性能优势,用户可通过管理控制台实现裸金属服务器的自动化发放,满足HPC业务按需灵活弹性的需求。

    分布式可扩展的块存储服务

    基于分布式架构提供可弹性扩展的块存储服务,每个弹性云服务器可按需挂载云硬盘,为HPC计算节点和存储节点提供存储空间,单盘最大支持32TB容量30K IOPS、1TBps吞吐量 。

    灵活弹性的服务助力效率提升降低成本

    提供API / SDK 适配,灵活管理云上计算、存储、网络资源;数据快递服务支持云上和云下之间快速导入导出;灵活的计费模式,按需购买,降低成本提升竞争力。

    云渲染行业解决方案,GPU渲染,CPU渲染,熊经理:13669794067,QQ:282222323

     

    四、解决方案架构

    渲染解决方案架构

    提供高性能、高可靠、简便安全的计算、存储、网络服务,满足各种渲染场景的性能需求,缩短渲染周期,提升企业效益

    架构优势。

    优良性能

    业界领先的性能,提供100G IB计算网络,本地3.2T企业级SSD盘,云服务中最大的本地高速缓存盘;提供96核 2T内存的胖节点计算实例。

    实例丰富

    支持虚拟机及裸金属部署模式,满足企业对不同应用的部署需求。

    架构开放

    基于开放的OpenStack架构。

    立体防护

    7层全方位立体化安全防护措施(接入、传输、基础、网络、虚拟化、数据、管理),3层Anti-DDoS流量清洗,安全隔离的私有网络VPC技术,权限访问控制IAM等技术。

    云渲染行业解决方案,GPU渲染,CPU渲染,熊经理:13669794067,QQ:282222323

     

    五、方案优势 

    1、全规格多类型高性能按需实例

    不同配置规格的CPU/GPU实例满足客户低成本或者高性能的需求。业界领先的性能,解决渲染时长抖动问题,保证图像渲染时长的稳定性。

    2、OBS单桶1wTPS,单流带宽300MBps

    OBS单桶TPS 可达1W,时延10ms,单流带宽300MBps,并支持HDFS和POSIX多协议。基于弹性文件服务SFS,最大文件传输可达20GB/s。

    3、对接Batch提供云上管理作业调度

    对接Batch服务,提供云上的资源池管理以及作业调度能力,大规模虚拟机批量快速快速部署,按需使用,降低操作等待时间,增加效率。

    4、按需秒级计费,多维付费模式

    优化调度效率,按需供给资源,按秒计费,大幅降低成本。提供包年包月、按需付费、竞价多种付费模式。

     

    展开全文
  • 实时体积云渲染(地平线):三.云体渲染

    实时体积云渲染(地平线):三.云体渲染

     

    体渲染

    最常见的体可视化方法就是Ray-marching法。该方法如下图:

    在像云这样的部分透明的介质的情况下,采样点将沿着视线进一步增加到场景中,并增加固定的步长,并且在每一步中都会累积介质的密度。 在每个云密度不为零的样本处,都会向太阳发出类似的射线行进,以累积样本点与太阳之间的密度。 当前渲染像素的最终alpha值仅取决于沿视线的密度,而颜色(RGB)还取决于太阳光的颜色以及太阳与采样点之间的密度。

    在本文的方法中,我们将天空视为巨大的圆顶,如下图:

    我们的Ray-marching将在圆顶的低层到高层进行积分计算。云层积分步长为:

    step=\frac{(ch_{stop}-ch_{start})}{n}

    向太阳积分步长的计算公式为:

    step_{sun}=\frac{0.5\times (ch_{stop}-ch_{start})}{S_{n}}

    其中n和Sn分别为云层积分步数和向太阳积分步数。(ch_stop-ch_start)为云层进入点到离开点到距离。圆顶的创建可以直接通过创建限定\theta的球体,代码如下:

    void renderSphere()
    {
        if (sphereVAO == 0)
        {
            glGenVertexArrays(1, &sphereVAO);
            
            unsigned int vbo, ebo;
            glGenBuffers(1, &vbo);
            glGenBuffers(1, &ebo);
            
            std::vector<glm::vec3> positions;
            std::vector<glm::vec3> uv;
            std::vector<glm::vec3> normals;
            std::vector<unsigned int> indices;
            
            const unsigned int X_SEGMENTS = 64;
            const unsigned int Y_SEGMENTS = 64;
            const float PI = 3.14159265359;
            
            float percentSph=acos(planetSize/(planetSize+startHeight))/(PI);
            float oriUV=-1.0*std::sin(percentSph*PI);
            float desUV=std::sin(percentSph*PI);
            float denoUV=desUV-oriUV;
    
            for (unsigned int y = 0; y <= Y_SEGMENTS; ++y)
            {
                for (unsigned int x = 0; x <= X_SEGMENTS; ++x)
                {
                    float xSegment = (float)x / (float)X_SEGMENTS;
                    float ySegment = (float)y / (float)Y_SEGMENTS;
                    float pSph=ySegment * PI * percentSph;
                    float xPos = std::cos(xSegment * 2.0f * PI) * std::sin(pSph);
                    float yPos = std::cos(pSph);
                    float zPos = std::sin(xSegment * 2.0f * PI) * std::sin(pSph);
                    
                    positions.push_back(glm::vec3(xPos, yPos, zPos));
                    uv.push_back(glm::vec3((xPos-oriUV)/denoUV,0.0,(zPos-oriUV)/denoUV));
                    normals.push_back(glm::vec3(xPos, yPos, zPos));
                }
            }
            
            for (int y = 0; y < Y_SEGMENTS; ++y)
            {
                for (int x = 0; x < X_SEGMENTS; ++x)
                {
                    indices.push_back(y       * (X_SEGMENTS + 1) + x);
                    indices.push_back((y + 1) * (X_SEGMENTS + 1) + x);
                    indices.push_back(y * (X_SEGMENTS + 1) + x + 1);
                    indices.push_back((y + 1) * (X_SEGMENTS + 1) + x);
                    indices.push_back((y + 1) * (X_SEGMENTS + 1) + x + 1);
                    indices.push_back(y * (X_SEGMENTS + 1) + x + 1);
                }
                
            }
            indexCount = indices.size();
            
            std::vector<float> data;
            for (int i = 0; i < positions.size(); ++i)
            {
                data.push_back(positions[i].x);
                data.push_back(positions[i].y);
                data.push_back(positions[i].z);
                if (uv.size() > 0)
                {
                    data.push_back(uv[i].x);
                    data.push_back(uv[i].y);
                    data.push_back(uv[i].z);
                }
                if (normals.size() > 0)
                {
                    data.push_back(normals[i].x);
                    data.push_back(normals[i].y);
                    data.push_back(normals[i].z);
                }
            }
            glBindVertexArray(sphereVAO);
            glBindBuffer(GL_ARRAY_BUFFER, vbo);
            glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(float), &data[0], GL_STATIC_DRAW);
            glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
            glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size() * sizeof(unsigned int), &indices[0], GL_STATIC_DRAW);
            float stride = (3 + 3 + 3) * sizeof(float);
            glEnableVertexAttribArray(0);
            glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, stride, (void*)0);
            glEnableVertexAttribArray(1);
            glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, stride, (void*)(3 * sizeof(float)));
            glEnableVertexAttribArray(2);
            glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, stride, (void*)(5 * sizeof(float)));
        }
        
        glBindVertexArray(sphereVAO);
        glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0);
    }

    这样我们Ray-marching的起点就是片源着色器中每个片源的世界坐标了。

     

    云光照模型

    在射线行进过程中,对于每个非零密度的样本,将使用样本处的密度以及样本与太阳之间的密度来计算光。为了近似照明,主要组成部分是比尔定律的简化版本。 比尔定律根据介质的性能来计算光的衰减。 在这种情况下,比尔定律简化为函数:

    其中ds∈[0,∞)是朝向太阳的累积密度,而b∈[0,∞)确定光的吸收量。 由于ds与实际密度有些差别,因此b是一个经验性术语,用于平衡解决方案。

    为了产生云体边缘高亮效果,比尔定律与Henyey-Greenstein的相位函数进行了补充,函数如下:

    该函数可用于计算介质的进/出散射。 g∈[-1,1]的范围从反向散射到各向同性散射再到内部散射。 术语θ∈[-1,1]是太阳的光方向与相机发出的光线方向之间的夹角。 此函数最重要的是用于向内散射,以在面对太阳的云具有高亮效果。

    除了Henyey-Greenstein的相位函数外,为了能够增加围绕太阳的集中强度,可以使用第二个术语来实现更大的日落效果:

    其中csi是要在太阳周围增加的额外强度,而cse是决定额外强度应在太阳周围的集中程度的指数。 我们最后的内外散射函数如下:

    其中ins∈[0,1]是内散射量,outs∈[0,1]是外散射量 。 通过从HG(θ,ins)或ISextra(θ)中选择最大强度,可以在太阳周围添加更多强度。 此外,将外散射项HG(θ,-outs)与项ivo∈[0,1]相加,以便能够线性插值,从而可以更好地控制内散射与外散射。

    上述函数代码如下:

    float HG(float cos_angle,float g){
        float g2=g*g;
        return (1-g2)/(pow((1+g2-2*g*cos_angle),1.5))/(PI*4);
    }
    float ISextra(float cos_angle){
        const float cs_i=10;//高光内散射
        const float cs_e=20;
        return cs_i*pow(SAT(cos_angle),cs_e);
    }
    
    float IOS(float cos_angle){
        const float in_s=0.2;//内散射
        const float out_s=0.1;//外散射
        const float ivo=0.5;//反散射
        return Li(max(HG(cos_angle,in_s),ISextra(cos_angle)),HG(cos_angle,-1.0*out_s),ivo);
    }
    

     

    其他非物理照明更改


    然而,朝着太阳迈出非常大的步伐会造成一些问题,这些问题似乎是无法解决的,这些问题基于物理学实现。 如下图所示:

    上图左:由于第一个太阳步长位置位于云层之外的可能性很高,因此几乎没有轮廓,并且看起来像一个大白点。 这在视觉上是令人不愉快的,因为云还倾向于产生更暗的边缘,如右图。 这可以通过添加完全非物理的环境吸收函数来解决:

    其中d是在当前采样点采样的云密度,而osa∈[0,1]是向外散射的量。 该函数使用高度百分比向顶部添加更多的环境散射。(ps:用了这个函数,我自己跑的效果还是左图- -,只有很少云朵出现右图效果,而且效果很差)。该函数代码为:

    float OutScatterAmbient(float Loddensity,float percent_height){
        const float os_a=0.9;
        //深度方向吸收
        float depth=SAT(os_a*pow(Loddensity,R(percent_height,0.3,0.9,0.5,1.0)));
    //    float depth= pow(Loddensity, R(percent_height, 0.3, 0.85, 0.5, 1.3));
        //垂直方向吸收
        float verticle=pow(SAT(R(percent_height,0,0.3,0.8,1.0)),0.8);
    //    float verticle= pow(R(percent_height, 0.07, 0.14, 0.1, 1.0), 0.8);
        return 1.0-SAT(depth*verticle);
    }

    使用比尔定律在光线行进较长步长可能引起的另一个问题是明暗区域之间的对比度高,如下图(左):

    通过使用函数钳制最大衰减可以部分解决此问题:

    其中ds∈[0,∞]是光线向太阳行进采样的密度,而ac∈[0,1]是用于钳制衰减的值。 在上图(右)中显示了将衰减钳位在b = 12和ac = 0.2的情况。

    但是,钳位最大衰减会导致另一个问题。 会使云层底面的灰色部分看起来没有特征。 为了解决这个问题,可以使用云密度更改衰减,如下图(右)所示:

     具体来说,这是通过如下函数完成的:

    其中amin∈[0,1]是云密度d对结果的影响量。衰减项A函数代码如下:

    //beer衰减项(利用clamp钳制)
    float Attenuation(float Density2Sun,float density,float cos_angle){
        const float beer=12;
        float CouldAttuentionClampVal=0.2;
        float a_min=0.2;
        float prim=exp(-beer*Density2Sun);
        float scnd=exp(-beer*CouldAttuentionClampVal);
        float Aclamp=max(prim,scnd);
    //    float checkval=R(cos_angle,0.0,1.0,scnd,scnd*0.5);
    
    //    return max(checkval,prim);
        return max(density*a_min,Aclamp);
    }

    最终照明函数是所有三个照明函数(衰减,入/外散射和外散射环境)的组合:

    代码如下:

    //最后光量
    vec3 Lfinal(float density,float Lodden,float density2Sun,float cos_angle,float percent_height){
        float attenuation_prob=Attenuation(density2Sun,density,cos_angle);
        float ambient_out_scatter=OutScatterAmbient(Lodden,percent_height);
        //并不需要每次计算因为matching过程中cos_angle恒定
        float sun_highlight=IOS(cos_angle);
        float attenuation = attenuation_prob*sun_highlight*ambient_out_scatter;
        attenuation=max(density * 0.4, attenuation);
        return vec3(attenuation*sun_Color);
    }

    ray-matching代码如下:

    vec4 raymatching(){
        float fp=0.0;
        vec3 rayDir=normalize(L_view);
        vec3 samplePos=WorldPos;
        //透射率,云颜色
        float transmittance=1.0;
        vec3 cloudColor=vec3(0.0);
        float cloudDepth=0.0;
        //远云层交点
        vec3 ch_stop=cul_sphR(viewPos,rayDir,planetCenter,planetSize+startHeight+thickness);
        //步数
        int mStep=numStep;
        float ch_th=distance(WorldPos,ch_stop);//射线进出云层总长度
        float stepLen=ch_th/mStep;
        float sunStepLen=0.5*ch_th/sunStep;
        vec2 curDen=vec2(0.0);
        for (int i=0; i<mStep; i++) {
            //当前采样云高在云中高度的百分比
            float p_h=SAT((distance(samplePos,planetCenter)-planetSize-startHeight)/(thickness));
            //获取密度
            curDen=getDensity(samplePos,p_h);
            //透射率
            cloudDepth+=curDen.r;
            transmittance = SAT(exp(-1.0*cloudDepth));
    
            //向太阳积分
            float sunDen=0.0;
            vec3 sunSamplePos=samplePos;
            for(uint is=0;is<sunStep;is++){
                sunSamplePos+=L_sun*sunStepLen;
                float sunp_h=(distance(sunSamplePos,planetCenter)-planetSize-startHeight)/(thickness);
                sunDen+=getDensity(sunSamplePos,sunp_h).g;
            }
            cloudColor+=Lfinal(curDen.r,curDen.g,sunDen,cos_angle,p_h)*transmittance;
            //fp+=0.0000002*distance(wordSamPos,planetCenter);
    
            samplePos+=stepLen*rayDir*Jitter(samplePos);
        }
    
        return vec4(vec3(cloudColor),1.0-(transmittance));
    }

    因为beer定律决定了透射率,因此我们的alpha值为1-transmittance。这里我们在光线积分中加入了抖动函数Jitter,我们可以看一下有无抖动的差别(右图为均匀采样,左图为加过抖动函数):

    抖动函数代码为:

    vec3 frac(vec3 p){
        return vec3(p.x-floor(p.x),p.y-floor(p.y),p.z-floor(p.z));
    }
    
    float frac(float p){
        return p-floor(p);
    }
    
    float hash(vec3 p){
        p = frac(p * 0.3183099 + 0.1);
        p *= 17.0;
        return frac(p.x * p.y * p.z * (p.x + p.y + p.z));
    }
    
    float Noise(vec3 x){
        vec3 p = vec3(floor(x.x),floor(x.y),floor(x.z));
        vec3 f = frac(x);
        f = f * f * (3.0 - 2.0 * f);
    
        return Li(Li(Li(hash(p + vec3(0, 0, 0)),
                            hash(p + vec3(1, 0, 0)), f.x),
                       Li(hash(p + vec3(0, 1, 0)),
                            hash(p + vec3(1, 1, 0)), f.x), f.y),
                   Li(Li(hash(p + vec3(0, 0, 1)),
                            hash(p + vec3(1, 0, 1)), f.x),
                       Li(hash(p + vec3(0, 1, 1)),
                            hash(p + vec3(1, 1, 1)), f.x), f.y), f.z);
    }
    
    float map2(vec3 p){
        vec3 q = p;
        float f = 0.0f;
        f = 0.65000 * Noise(q);
        q = q * 2.02;
        f += 0.35000 * Noise(q);
        return clamp(f, 0.0, 1.0);
    }
    
    float Jitter(vec3 p){
        return R(map2(p * 300), 0, 1, 0.5, 1);
    }
    

    最后实现效果:

    云体这一块只能算开个坑,效果很奇怪,没内味,最近有别的事要干,先放一放了,以后项目需要在深究吧(- -可恶)。

    展开全文
  • 3DMAX云渲染平台都怎么收费?5大云渲染平台测试后才知道差距这么大,您用对了吗?本次共计测试了3个镜头,为了让大家很直观地感受各个平台渲染时间和费用上的对比,我整理了个表格,供大家自行参考和判断。若有疑问...

    9af3cb7c471ca3c621c7828a12b0f8f9.png

    3DMAX云渲染平台都怎么收费?5大云渲染平台测试后才知道差距这么大,您用对了吗?

    本次共计测试了3个镜头,为了让大家很直观地感受各个平台渲染时间和费用上的对比,我整理了个表格,供大家自行参考和判断。

    若有疑问,大家不妨自行提图测试,毕竟每个平台的新用户都可免费渲染几张图,测试体验!

    每个平台的渲染时间和费用如下:

    0c81597ddf6e9c0e1b855635a9c5a134.png
    6666

    本次测试,完全是为了辅助设计师选择到合适的,同时适合自己的云渲染平台,我将不同3D场景的3个镜头同时提交到“瑞云、渲染100、扮家家、炫云、渲云”五大云渲染平台做的渲染测试。

    为让大家更好地感受整个测试,以下是5大云渲染平台的测试方式和测试证据截图,选择的服务器都是各个平台的单台服务器测试:

    一、渲染100

    注册时可填“6666”,领取礼包免费测试。

    本次测试利益相关,渲染100平台小众,渲染软件仅支持3DMAX,VR和CR渲染器,也仅支持效果图云渲染,平时活动少,无广告预算,毕竟“羊毛出在羊身上”,运营全靠人力,从图中的测试来看,能够得出的结论是:渲染速度并不是最快的,测试费用是最低的,值得补充的是,平台为了压缩成本,渲染有封顶或欠费等有规则性限制,对手太强,实在是没有办法啊~

    “前台”渲染时间2小时24分31秒,计费4.6元;

    “主卧”渲染时间15分11秒,计费0.8元;

    “客餐厅”渲染时间1小时15分27秒,计费应收1.5元,因为优惠实收是0.7元;

    30687f71281798aa04ab4ba47b52e898.png
    6666

    二、瑞云

    说实话整个测试结果对瑞云平台很不友好,主要是价格上。但实话讲瑞云渲染因为体量大,涵盖效果图和影视动画的云渲染,合作的都是银幕背后的大制作团队,大企业用户偏多,市场方向主要在于上游高端市场,根本不屑于与我们这样的平台比较,本次对比也是想了解一下这样的大平台的真实收费情况!

    “前台”渲染时间3小时9分52秒,计费18.607元;

    “主卧”渲染时间21分12秒,计费2.078元;

    “客餐厅”渲染时间42分59秒,计费4.212元;

    387babe3720eeff47b1f94437b19d207.png
    6666

    三、扮家家

    扮家家室内设计网,是专业的设计资源交流的论坛网站,本身用户体量巨大,消费群体选择较高,引流云渲染的较多,本次测试结果如下:

    “前台”渲染时间3小时9分9秒,计费28.37元;

    “主卧”渲染时间17分59秒,计费2.7元;

    “客餐厅”渲染时间52分42秒,计费7.9元;

    e16d609914b5da0e2557d45c6c5a3aa6.png
    6666

    四、炫云

    炫云渲染平台的支持软件数量众多,用户体量也算是行业顶尖,加上各类广告的投放,让其在行业知名度极高,本次测试的整体结果也是很不错的,及具体情况如下:

    “前台”渲染时间2小时39分24秒,优惠后计费10.828元;

    “主卧”渲染时间14分34秒,优惠后计费0.888元;

    “客餐厅”渲染时间50分23秒,优惠后计费1.995元;

    58a237000f7df5c4f3d91fc7d5cec7fb.png
    6666

    五、渲云

    江苏的渲云平台也是在效果图和影视动画渲染行业有不错的地位的,所以本次也顺便测试了一下,整个情况也是非常的优秀,具体情况如下:

    “前台”渲染时间2小时51分13秒,计费6.89元;

    “主卧”渲染时间16分56秒,计费0.75元;

    “客餐厅”渲染时间56分14秒,计费1.98元;

    ea7556961c81b7509e405ffb804ca4dd.png
    6666

    为了确保公平,现将本次测试的参数公布如下:

    前台:分辨率:3000*2250

    最小细分:1

    最大细分:24

    噪波阀值:0.003

    灯光缓存细分:1500

    渲染光子比例:1/3

    主卧:分辨率:3500*2625

    最小细分:1

    最大细分:4

    噪波阀值:0.005

    灯光缓存细分:1000

    渲染光子比例:1/1

    客餐厅:分辨率:8000*4000

    最小细分:1

    最大细分:4

    噪波阀值:0.01

    灯光缓存细分:1500

    渲染光子比例:1/3

    整个测试的结果一目了然,值得注意的是云渲染平台除了测试渲染时间和渲染价格之外,还应测试的是是否支持渲染器及版本或者渲染的出错率等等。

    还有的平台为了强调速度和价格,存在擅自修改用户参数的情况,导致出图的整个大小都比其他平台小几十个M,对于这样的平台将不在任何地方做推荐,免得恶心人。

    对于设计师选择云渲染的3条建议

    1.浏览官网,咨询客服价格,渲染器,使用事项等;

    2.由于各个平台都有新用户优惠,先提交几个任务测试,测试后再做选择;

    3.遇到问题,请直接联系客服解决,因为云渲染毕竟不是本地渲染,3D渲染环境的匹配中但凡有任何一点不一样,就可能导致渲染和本地不一样;

    为什么选择云渲染

    为了能够同时渲染多图,释放电脑,提高工作效率,如果本地有渲染条件且渲染无压力的情况下,不建议使用云渲染,毕竟花钱! 谢谢大家!

    75c53ceb22170730215e501b749ce811.png
    展开全文
  • 为您提供扮家家云渲染下载,扮家家云渲染软件,是由扮家家开发和发行的3Dmax辅助渲染软件。扮家家云渲染软件主要针对3Dmax渲染的提交、自助渲染、缴费、会员制度等一站式服务软件。软件简介 3Dmax的渲染主要是靠CPU...
  • 某设计公司需要将图纸文件上传到云渲染农场(RenderBus云渲染)进行渲染效果,怎么设置? 解决方法: 上传到云有一定的安全风险,要告诉客户 在文档安全管理中将软件自定义授权,用procemon收集一下操作过程,...
  • 通过 ray marching 算法可以进行体积云渲染。ray marching 算法从摄像机开始,向世界空间投射光线,并且逐步行进,记录沿途的信息,最后根据积累的信息进行云朵的绘制。此外,通过偏移采样的方式来判断云朵的光照...
  • 现在大部分的绘图员都是使用3Dmax的VR或CR进行室内...如果是电脑硬件配置导致的渲染速度慢的话就只能借助其他的工具了,比如可以大大提高渲染速度的云渲染插件云渲染就是用户通过云渲染客户端将做好的文件提交到性能...
  • 看了很多人的回答,各有各的说法,本人也经常用云渲染,我也说说我对云渲染的看法。 云渲染好几年前就已经有了,发展到现在,市面上已经有了很多的云渲染平台,和传统的渲染农场一样,都是帮助渲染效果图和影视动画...
  • 基于演示文稿的体积云渲染方法的实现作为实时渲染课程的一部分,Andrew Schneider的Horizo​​n:Zero Dawn实时体积云景在SIGGRAPH 2015上举行。 要求 此项目需要具有OpenGL 4.3+支持的GPU。 以下依赖项取决于cgo。...
  • 目前是有支持VRay for SketchUp云渲染的平台的,现在比较成熟云渲染的是渲云平台,那么具体的Sketchup_Vray云渲染怎么操作呢,一起来看看。步骤一:到渲云官网注册账号,并下载安装客户端。注意,安装客户端的时候...
  • CSRender云渲染平台支持MAYA,MAX,VUE,V-RAY等软件,拥有分块渲染效果图,渲染小管家,微信绑定,项目管理,一键式提交等特色功能。 CSRender云渲染平台特色介绍 1、分块渲染效果图 每张效果图分成64块渲染 每台...
  • 渲染100云渲染,个人认为最便宜和性价比的云渲染平台。 渲染100云渲染价格明细 48线程极具性价比,15分钟内0.2元/张,60分钟内0.8元/张,超出部分0.045元/分钟,24小时24元封顶。 240线程32元封顶应该也是行业...
  • 3DMAX动画云渲染平台需要知道:付费渲染是给3DMAX的动画制作者带来方便的,不是带来麻烦的,爱做测试的我测试了不少云渲染平台的3D动画渲染功能,在此也分享给到大家。“渲染101”动画渲染平台,1.44元/台/小时的...
  • 登录蓝海创意云渲染农场http://render.vsochina.com/,点击“立即渲染”。 第2步 选择想要查看渲染计费的分中心。 第3步 点击左侧“业务管理”——“查看计费单”,选择想要导出的作业日期,点击“查看...
  • 利益相关,是阿里云“云渲染”的实际开发者(至2013年底)。 正文: 其实,Pixar公司有一个可以比照的对象,他们基于亚马逊的云平台技术,提出了renderman on demand在线服务(可google到),即将PRrenderman这样的...
  • 扮家家云渲染客户端是目前业内领先的云渲染/渲染农场服务,提供在线即时的绘图,储存,渲染,展示等功能,致力为效果图/动画相关行业人员打造3dmax/maya渲染解决方案。软件放弃传统的渲染方式,引入最新的GPU渲染,...
  • 今天来推荐一个适用于3dmax里的VR和CR渲染器的云渲染平台,性价比很高,行业内口碑好,主要是价格低廉,渲染一张全景效果图只需要1个小时左右,费用还不到1块钱。 这个平台就是“渲染100”云渲染平台。 渲染100...
  • 目前大部分室内设计都是用3dmax做效果图,每次公司有新同事我就会给他们介绍什么是云渲染云渲染对于设计师来说确实是一个比较方便的工具3dmax对电脑配置的要求较高,也需要投入很多的时间精力来绘图,建模、附材质...
  • 越来越多的家具公司转向用3dmax+Vray+Corona渲染产品效果图了,也看到很多疫情过后的招聘信息,很多家具公司招人的标准也变成了3dmax软件和vray渲染器、corona渲染器的要求了。...2、合作渲染农场或云渲染平台。
  • 云渲染软件如何进行性能测试? 需要检测哪些指标? 有没有好的工具?</p>
  • 追光动画流程总监刘鲁在2017云栖大会·北京峰会中做了题为《3D动画的菜谱式灯光与云渲染》的分享,就追光动画简介,3D动画流程,菜谱式灯光等方面的内容做了深入的分析。
  • 现在市场上云渲染多如牛毛,但是能叫出名字的就那么几家,为了避免刚刚用云渲染就有不好的体验,建议使用经过时间考验的平台,例如炫云,瑞云,扮家家等,具体使用那一家,你可以多下载几家对比,然后在决定使用哪家...
  • 个人优先选择“渲染100” http://www.xuanran100.com?ycode=mk12 第二选择“瑞云Renderbus” https://www.renderbus.com 第三才是选择“渲” http://www.xrender.com 渲的充值活动多,花里胡哨,实际上算下价格...
  • 实时体积云渲染(地平线):一.算法总览 体积云一直是想尝试的一个东西,最近终于有点自己的时间,花了些功夫实现了“地平线”里用到的体积云算法。实现效果图如下(未加大气散射有空一定补上): Fredrik的论文...
  • kode80CloudsUnity3D, Unity3D实时体云渲染解决方案 kode80CloudsUnity3D ( Ver 1.1.0 )kode80云是一个实时的体积云呈现解决方案,提供完全动态。动画。3D cloudscapes和自定义编辑器。 所有特性,从云密度和形状到...
  • 渲染是做效果图很重要的一个步骤,如果要渲染出一张高...云渲染就是将本地的max文件通过客户端或网页打包上传到云渲染平台的服务器上进行渲染,渲染完成之后再通过网络传输回本地电脑,云渲染平台的服务器一般都是使...
  • 高效真实的云渲染算法 【转】 原文链接 : http://www.cnblogs.com/effulgent/archive/2008/10/06/1305029.html 原文: Realistic and Fast Cloud Rendering NinianeWang MicrosoftCorporation(nowatGoogleInc.)...
  • 中国自助式云渲染开创者-Renderbus 深圳市瑞云科技有限公司是一家专注于为视觉行业提供垂直云计算SaaS服务的公司。用户包括全球领先的电脑动画工作室、影视特效工作室、建筑设计可视化工作室、游戏以及商业广告公司...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,725
精华内容 690
关键字:

云渲染