`
dogasshole
  • 浏览: 851615 次
文章分类
社区版块
存档分类
最新评论

Halo Reach Effects Tech

 
阅读更多

link:http://cmpmedia.vo.llnwd.net/o1/vault/gdc2011/slides/Chris_Tchou_Programming_Halo_Reach_Effects.pptx

halo reach的一些特效技术:


particles

首先提到bungie老的particle系统基于一个很大的uber shader,uber shader的一个坏处也体现的比较好,就是没法很精确的去保证每一个particle都按照其最精简的方式运行。

bungie的选择也很棒,就是用额外的一些系统来补充,一般的particle system用老的,新式的(带反弹功能的)就用新的particle。

这个看似简单的选择,结合之前的一些文章来看,其实不容易,不够老练的选手常常是想另立门户,然后写了很长时间,一切顺利的话,写出一个和原来差不多的东西。

新的particle系统擅长处理这样一类particle:

  • 数量多
  • 面积小
  • 生命期短
  • pixel shader简单

bungie使用28个byte就把这一类particle的信息表达清楚,并在build time存到texture里面。

在render particle的时候是cpu直接issue一个drawcall,gpu去sample texture,sample出来的值是particle 的property,根据这些在vs,ps里面去渲染。

当然quad实在vs里产生。


particle collision

使用depth buffer和normal buffer来碰撞particle,屏幕外的就不管了。

好像会很有问题,但是事实证明是可行的而且给力的。


ShieldEffect

这部分一些小技巧效果还很棒,赶紧实现个,组里同事还挺喜欢的。

这个我比较喜欢:使用depth信息调解下透明度就可以达到,很棒!


LowResolutionTransparency

使用1/4buffer来渲染透明物件由来已久了,bungie也采用了这个办法。

在360平台上,bungie使用了4xmsaa的技巧来做。

另外也不是所有的particle都放在quater buffer里就是最好,一些小的近的直接全分辨率就好。

然后文中提到一个transition的问题让我有点晕,不知道是什么的transition,high/low resolution的还是其他的什么。

远的大的可以低分辨率,这个就涉及到一个低高分辨率的转换问题。

暂且理解为resolution的transition吧,看起来只有这个是和depth相关的。

总之是把particles进行了分group的划分来做的,这一块不是很懂目前,有哪位看的很明白麻烦指教一下。


最后务虚部分提到了

  • 程序员不要埋头猛做,需要看下项目需要什么
  • 质量和速度是可以互相转换的,有时候就是要牺牲一些质量,
  • 君不见cod那大量的粗糙的大normalmapping和particle一样赢得了玩家的心么?

分享到:
评论

相关推荐

    Halo Reach Wallpapers and New Tab-crx插件

    语言:Bahasa Indonesia,Bahasa Melayu,Deutsch,English,Filipino,Français,...Halo Reach壁纸为您的Chrome带来新外观和实用工具 Halo Reach Wallpapers和New Tab扩展程序为默认的Chrome New Tab页面带来了全新外观。

    Simulated_Halo:当此应用程序为您播放时,为什么要玩Halo Reach Swat!

    Simulated_Halo:当此应用程序为您播放时,为什么要玩Halo Reach Swat!

    halo2.2中文版破解工具.rar

    HALO2.0中文版使用说明:如果你在双击Halo.exe后没有反应,那说明你的系统没有安装JDK1.5,安装后再运行就可以了。添加的功能或者修正的问题如下:一、修正了对类搜索的bug问题,修正了更新地址和简体转繁体的问题;...

    手机游戏破解工具Halo sjboy V2.0

    首先下载破解工具Halo sjboy V2.0 下载地址:Halo sjboy V2.0.rar 然后下载JAVA平台支持jre-1_5_0_04-windows-i586-p.exe 下载地址:jre-1_5_0_04-windows-i586-p.exe 两样全部下载完成之后,先安装JAVA平台支持...

    halo全教程.docx

    该word文档详细记录了我在ubuntu18.04上完整搭建halo博客的全过程,内含SSL证书部署、图床搭建等等

    Halo博客搭建部署(halo+nginx+主题)

    Halo博客搭建部署(halo+nginx+主题)

    HALO JAVA修改器

    HALO JAVA修改器

    halo-1.4.11.jar

    halo-1.4.11.jar

    halo修改java分辨率教程.docx

    Halo修改Java分辨率教程 本教程主要讲述如何使用Halo工具强制Java软件全屏,并解决数字键被改变的问题。 Halo是一款强大的Java软件优化工具,可以帮助用户解决Java软件无法全屏的问题,并且可以对数字键进行重新...

    ReachVariantEditor:一个编辑 Halo 的工具

    ReachVariant工具用于编辑 Halo: Reach 游戏变体的工具,在从 Halo: The Master Chief Collection 的 PC 版本获得的文件上进行测试。 您可以下载该程序。 该工具是使用 Visual Studio 2019 构建的。它动态链接 Qt,...

    halo-1.3.2.jar

    halo-1.3.2.jar,本地查看halo博客系统,采用了应用与用户配置分离的模式。你仅仅只需要一条命令即可运行成功,同时也支持 Docker/Docker Compose 部署。完善的主题系统,支持在线安装和更新。开发主题也十分方便,...

    Halo 开源建站工具 v2.13.1.zip

    Halo 开源建站工具 v2.13.1.zip

    Python库 | halo-0.0.7.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:halo-0.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    halo-1.4.2.jar

    halo-1.4.2.jar版本,防止halo官方突然被封

    手机游戏破解工具HALO 2.0中文版

    进入HALO 打开一个需要破解了JAR 打后开,点击工具-配置,把对JAR进行破解勾上,如果不要修改游戏就把JAVAMAGIC的修改屏幕和键位关掉. 这样破解工作就完成了 在GAME文件夹里找到你破解的游戏名文件夹里 然后生成JAR...

    HALO 2.0(中文版)

    HALO 2.0(中文版) 用于ME游戏信息信息修改,可直接修改class文件中的字符串

    JavaScript-一款Halo的主题简约大气

    一款Halo的主题,简约大气

    halo-dev-halo-master_java_

    当前版本:V3.0 基于 Spring Cloud 、Alibaba、 OAuth2 的RBAC 权限管理系统

    简易的Java开源博客Halo搭建教程.docx

    简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo...

Global site tag (gtag.js) - Google Analytics