Automated Level of Detail Generation for Halo:Reach

097634e9169c6777120550ad61afb6bc-1.jpg 立即下载

link:

http://cmpmedia.vo.llnwd.net/o1/vault/gdc2011/slides/Xi_Wang_Programming_Automated%20Level%20of%20Detail%20Generation%20for%20Halo%20Reach.pptx

 

短小精悍的文章,拥有真材实料:数据

 


 

总体说来是介绍lod mesh pipeline的一个文章。

自动化的从高模产生低摸的pipeline,这个部分对于开发效率可以说是过于重要。

 

bungie高模到底模不是用的geometry数据来直接合并附近的点的方式。

而是采用voxel的方式。

  • 把一个模型从6各方向拍depth,
  • 用类似visual hull的方法产生3d空间grid的一个描述,类似做3d 扫描
  • down sample
  • 使用iso surface算法construct triangle
  • 用progressive mesh产生低模。

这个办法的好处就是根据能看到的东西来产生低模,而不是实际的模型,但是我想童鞋,这个是不是有点太费事了?

 

然后比较担心的是骨骼信息,是用对应区域的方式mapping过去(真的靠谱么,虽然halo做出来了,跑得还挺好)

  • 使用单骨骼的animation,选weight最大的

一些植被等东西直接用了card imposter。

 

其余的就是simple material,这个没问题。

 


 

数据

 

  • Performance:Dynamic objects 5~10% cost, environment objects 1~2% cost
  • Storagecost: Dynamic objects ~12% cost, environment objects 20% cost
  • 取%12的全模型的顶点量比较合适
  • 30倍bounding box radius的fading distance比较合适

 


 

后面还发邮件问了下作者两个问题:

  • 文中的imposter就是指低模,card imposter才是指复杂模型render到billboard上
  • lod切换使用alpha blend的方式,尽管这个看起来很费,但是距离适当的话,可以在performance和quality上取得一个平衡。

 

 

 

 

智能体式AI漫游指南中文版 智能体式AI漫游指南中文版、智能体式AI指南英文原版 立即下载

相关推荐

融合高斯扰动与竞争学习的改进型多目标部落竞争与成员合作算法(IMOCTCM)求解DTLZ1-DTLZ7及-盘式制动器设计研究(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并非聚焦于该主题,而是一份涵盖多个科研领域的Matlab/Simulink仿真资源汇总清单。文档列举了包括多目标优化算法(如IMOCTCM、MOWAA)、电力电子变换器控制(如LLC谐振变换器、DAB变换器)、电机控制(如PMSM无感控制)、状态估计(如卡尔曼滤波)、微电网调度、无人机路径规划、图像处理、信号处理等多个方向的仿真研究课题,涉及Matlab、Python、Simulink、PSCAD等多种工具和编程语言。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,表明其核心用途是推广和分享一系列科研仿真资料,服务于学术交流与资源共享。; 适合人群:适用于电气工程、自动化、控制科学与工程、电力系统、电子信息、机械电子、计算机科学等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①为科研工作者提供丰富的Matlab/Simulink仿真案例参考和技术实现思路;②辅助高校师生完成课程设计、毕业设计或学术论文复现工作;③通过获取开源共享资源加速个人或团队的项目开发与算法验证进程。; 阅读建议:该文档属于资源目录性质,缺乏连贯的技术论述与逻辑结构,建议使用者根据自身研究方向筛选相关条目,结合提供的代码和模型进行学习与实践,并注意核实所下载资源的有效性、完整性以及代码运行环境的兼容性。

Automated Level of Detail Generation for Halo:Reach

为什么80%的码农都做不了架构师?>>> ...

weixin_33682719的博客 198

单细胞分析实录(12): 如何推断肿瘤细胞

公众号后台回复20210418,获取本文的测试数据 1. 回顾 前面我已经讲解了inferCNV的基本用法,这一节继续学习:如何推断肿瘤细胞。本文应该是到目前为止,全网最详细的帖子(之一)。 关于肿瘤细胞的推断,比如研究上皮细胞起源的肿瘤,我见过的一些做法如下 简单粗暴型:将来源肿瘤病灶的所有上皮细胞都看成是肿瘤细胞 看CNV:将来源于肿瘤病灶的上皮细胞和参考细胞比较,将那些有明显CNV的细胞看作肿瘤细胞 看表达特征:考虑到有的肿瘤细胞可能没有CNV层面的变化,有的文章会根据肿瘤与正常的表达谱来区分是.

TOP生物信息 1万+

程序员适用的dds贴图查看小工具

之前使用xnview来查看dds贴图,但是今天在追踪美术在该使用dxt1的时候使用了dxt5的情况,发现xnview里面没法看贴图格式。。。后来同事推荐 发现对于程序员nv提供的几个小工具挺好的:https://developer.nvidia.com/legacy-texture-tools现在使用的是:*windows texture viewer:非常轻量级的查看dds贴图,格式可以见,而且

安柏霖的专栏 3万+

IP白名单校验

支持格式: 1、127.0.0.1 // 指定固定IP 2、127.0.0.1-127.0.0.128 // 可使用“-”来表示一个IP区间,支持跨IP段(一般不会出现这种情况,跨IP段则配置多个规则) 3、127.0.* // 2~4位IP段可...

2200

肿瘤基因组分析实战:VAF、MAF、CCF这些指标到底怎么算?(附Python代码示例)

本文通过Python代码示例,详细解析了肿瘤基因组分析中VAF、MAF和CCF三大核心指标的计算逻辑与应用。文章从VCF文件解析入手,逐步演示了变异等位基因频率、次等位基因频率及癌细胞分数的计算方法,并探讨了拷贝数变异对结果的影响及克隆结构推断的实战流程,为生物信息分析提供实用指南。

silver的专栏 1006

windows上更好的命令行工具软件

windows自带的console cmd用起来太不爽了,尝试了一些其他的:看下来是powercmd和cmder比较好,而且两个都可以和total commander结合起来,很不错。 相比之下, powercmd更易用,cmder更geek

安柏霖的专栏 9460

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 837

vs2010 c++快捷键精选

这里是一个全的,并在最后有全的快捷键copy。http://www.cnblogs.com/fuhj02/archive/2010/12/21/1912776.html我这里精选一下,记一些比较有用的:CTRL + F6CTRL + TAB下一个文档窗口CTRL + SHIFT + F6CTRL + SHIFT + TAB上一个文档窗口CTRL + K, CTRL + C注释选择的代码

安柏霖的专栏 7807

ROS2实战:手把手教你用CMake集成自定义DDS(以CycloneDDS为例)

本文详细介绍了如何在ROS2中通过CMake集成自定义DDS(以CycloneDDS为例),涵盖环境准备、源码编译、ROS2工作区集成、性能调优及常见问题排查。通过RMW中间件抽象层,开发者可以灵活切换DDS实现,提升系统实时性和可靠性。

weixin_29284201的博客 347

基于深度学习 YOLOv11 的快递包裹检测系统(Python + PySide6 界面 + 训练代码)

成为亟需优化的重要环节。随着电子商务的快速发展,物流行业面临着越来越大的压力,为了解决这些问题,我们提出了一种。目标检测算法,实现快递包裹的。的界面,供用户进行实时监控。本项目的主要目标是利用。

斌擎科技 763

[siggraph13]《巫师3》角色渲染

《巫师3》角色渲染由TheWitcher开发商CDProjekt的lead engine programmer&technical artist带来。 主要是罗列历史发展及主要的pipeline&技术点,不太有深入的技术介绍,对于要自己开发引擎,选择开发计划及节奏也比较有参考意义。

安柏霖的专栏 6430

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1031

intel parallel studio

最近开始做一些profile工作,出了使用内部开发的profile信息搜集之外,也开始安装使用parallel studio xe 2011.首先使用界面比较好看amplifier,属于vtune的延续或者进入parallel studio的整合,提供了很多不错的feature。但是目前来看在profile game上还是有相当的路要走。比较好的是可以在一个frame里用树状结构来把嵌套的event图形化的显示出来,使用颜色区分不同,鼠标移上去可以看见event 名字和时间这种。但是amplifier这点上

安柏霖的专栏 5878

时频分析之短时傅里叶变换(STFT)

本文利用MATLAB自带的spectrogram函数对信号做短时傅里叶变换。首先介绍了短时傅里叶变换(STFT)的背景及意义;其次,对spectrogram函数的用法以及变量的含义做了详细的解释;最后,利用MATLAB编写程序实现了信号的STFT。

总结论文中的算法并给出论文的复现代码 7万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

HaloWars地形技术(HALO WARS: The Terrain of Next-Gen)

http://www.gdcvault.com/play/1277/HALO-WARS-The-Terrain-of这个是09年的视频,很多技术点还是非常有借鉴意义的,主讲者ColtMcanlis当时在bonfire studio后来到了blizzard也发了一个gdc的presentation(link),不过后来又离职了。看完video的几个感觉是:像UE这样的engine只能提供genera

安柏霖的专栏 4801

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visual studio下Incredibuild插件崩溃的解决

这几天在新电脑上,频繁出现incredibuild不能使用的问题,开始怀疑是和visual assist的插件冲突。 https://forums.wholetomato.com/forum/topic.asp?TOPIC_ID=11554 后来在这个论坛这里看到其实还是incredibuild自己的问题,crash的地方是incredibuild的插件窗口不要是auto hide,选择成...

安柏霖的专栏 4795

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

使用perforce+git处理连线&离线工作的pipeline

实际证明svn是不适合大项目做事的,相比perforce和git都是差的很远,估计要逐渐消失了。现在的情况是,连线下使用perforce,由于有离线工作的需要,所以离线情况使用git,中间的载体是移动硬盘。必须说perforce和git分别是两种version control方面(perforce连线情况下的,git是离线情况下的)的王者。perforce可以另建一个workspace到移动硬盘上

安柏霖的专栏 3867

NVIDIA Parallel Nsight

http://developer.download.nvidia.com/presentations/2010/gdc/GDC_2010_Nsight.pdf nv把gpu debug/profile工具整合进了visual studio,起名为NSight,最早在nv网上订阅的时候叫nexus,哈哈,结果应该是名字和google手机“撞衫”的原因,最后改名为nsight,里面很梦幻的口号

安柏霖的专栏 3407

4K显示器和防蓝光眼镜膜

最近努力的适用了一段时间的28寸的4k显示器,这个简直没法用,如果使用原生的分辨率字就特别的小,如果使用缩放的分辨率,就显示的很模糊。小尺寸的4k显示器真的是日常使用意义不大了。玩起游戏倒是天然带个Super AA,感觉更“电影画质”。另外一个做眼镜行业的朋友介绍使用了一个过滤蓝光的眼镜膜,没有那些号称滤掉97%蓝光的,大约33%,眼镜会有很低的泛黄(绿了蓝色不就泛黄么)。滤掉太多蓝光的,做渲染程

安柏霖的专栏 3200

一些编程辅助工具

git越来越喜欢git,git本身理念上的提升还没太用到,但是对于常常要offline工作的情况,里面的push功能很好,相当于local有一个小型server,在offline情况下可以把改动存在着里面。然后online情况下在commit到想github这种代码托管的地方。 git extention对于不爱用命令行的同学可以用这个,各方面功能很方便。git scc provider:http

安柏霖的专栏 3064

vs2010中的shader syntax highlight

目前看来有两个办法:1, 和vs2005一样,使用nvidia sdk中带的usertype.dat,可以看这里:http://blog.youkuaiyun.com/ccanan/article/details/57618352,使用nshader这个vs2010的插件,不过nshader这里有很多不便的地方,比如行号显示不了最后使用下来还是usertype这个方法最好

安柏霖的专栏 2287

星战online的可定制角色创建技术

gdc2011的paper:《UltimateCustomizability in Character Creation:Challengesand Innovations》由cryptic studio带来。玩家在创建角色的时候选择角色的样貌也不是新东西了(wow就有么)---

安柏霖的专栏 2000

git extention不错

sourceforge.net/projects/gitextensions/files/Git%20Extensions/Version%201.92/GitExtensions192SetupComplete.msi/downloadvisual studio 05,08,10上的plugin。 已经用了挺长时间了,里面功能挺好的,越来越提升,而且一个很好的就是可以commit一部分chang

安柏霖的专栏 1873
上一篇: Halo Reach Effects Tech
下一篇: Cinematic Character Lighting in starwars the old republic
安柏霖
安柏霖 领域专家: 学术研究与理论基础技术领域 领域专家: 学术研究与理论基础技术领域
博客等级 码龄20年 1788粉丝 891原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值