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一样赢得了玩家的心么?
分享到:
相关推荐
语言: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!
HALO2.0中文版使用说明:如果你在双击Halo.exe后没有反应,那说明你的系统没有安装JDK1.5,安装后再运行就可以了。添加的功能或者修正的问题如下:一、修正了对类搜索的bug问题,修正了更新地址和简体转繁体的问题;...
该word文档详细记录了我在ubuntu18.04上完整搭建halo博客的全过程,内含SSL证书部署、图床搭建等等
Halo博客搭建部署(halo+nginx+主题)
HALO JAVA修改器
首先下载破解工具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-1.4.11.jar
ReachVariant工具用于编辑 Halo: Reach 游戏变体的工具,在从 Halo: The Master Chief Collection 的 PC 版本获得的文件上进行测试。 您可以下载该程序。 该工具是使用 Visual Studio 2019 构建的。它动态链接 Qt,...
资源分类:Python库 所属语言:Python 资源全名:halo-0.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
halo-1.3.2.jar,本地查看halo博客系统,采用了应用与用户配置分离的模式。你仅仅只需要一条命令即可运行成功,同时也支持 Docker/Docker Compose 部署。完善的主题系统,支持在线安装和更新。开发主题也十分方便,...
halo-1.4.2.jar版本,防止halo官方突然被封
进入HALO 打开一个需要破解了JAR 打后开,点击工具-配置,把对JAR进行破解勾上,如果不要修改游戏就把JAVAMAGIC的修改屏幕和键位关掉. 这样破解工作就完成了 在GAME文件夹里找到你破解的游戏名文件夹里 然后生成JAR...
HALO 2.0(中文版) 用于ME游戏信息信息修改,可直接修改class文件中的字符串
一款Halo的主题,简约大气
当前版本:V3.0 基于 Spring Cloud 、Alibaba、 OAuth2 的RBAC 权限管理系统
简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo搭建教程.docx简易的Java开源博客Halo...
进入HALO 打开一个需要破解了JAR 打后开,点击工具-配置,把对JAR进行破解勾上,如果不要修改游戏就把JAVAMAGIC的修改屏幕和键位关掉. 这样破解工作就完成了 在GAME文件夹里找到你破解的游戏名文件夹里 然后生成JAR...
前端开源库-eslint-config-haloeslint config halo,halo的eslint可共享配置