我目前正在研究我的论文,它是一个渲染行星大小地形的引擎。
我还在完成我的研究,我遇到了很多关于这个主题的东西,问题是我无法决定我应该使用哪种 LOD 方法。
我知道 Ulrich 的 geomipmapping、几何裁剪图 (GPU) 和分块 LOD,它们在大型地形上效果很好,可用于渲染立方体的 6 个面,然后通过 this method 将立方体“球化”。并且我了解如何使用 C++/OpenGL/GLSL 在 GPU 上实现所有这些方法(使用 ROAM 之类的方法或任何其他不使用立方体的方法是我无法实现的,因为纹理是一种痛苦)。
所以,我没有时间实现所有的方法,看看哪种方法是最好的,更适合行星尺度,我在这里问是否有人进行过这种比较并帮助我决定哪种方法我应该实现和使用(我的导师有点疯狂,想让我用二十面体做点什么,但除非使用 ROAM,否则我无法理解这种方法)
无论如何,如果您能帮助我决定或有任何其他建议或方法,我将不胜感激。一个条件是该方法应该能够实现 GPU 端(至少是大部分)以防止 CPU 瓶颈。
另一个要求是,我知道在获取地形中的大量细节时存在有关浮点数精度的数值问题,我不知道如何解决它,我在论坛上阅读了一个解决方案,但无法理解如何解决实现,我忘记了那个线程,我想知道如何解决这个精度问题。
PD:对不起我的英语。
[编辑] 我目前正在阅读一些矩阵变换来解决浮点精度、z-fighting 问题、使用动态 z 值的视锥体剔除以及块的数据表示(使用带浮点数的补丁空间及其在世界坐标中的位置作为double)所以我想我可以轻松解决精度问题。我仍然需要将 LOD 方法与您的意见和建议进行比较,以决定哪种方法更适合该项目。考虑到实现难度 vs 视觉质量 vs 性能,我想要最好的。
我忘了提及的是,这一代是混合的,我的意思是,我应该能够完全使用 GPU(动态计算的高度)和/或使用基本高度图图像并使用 GPU(顶点着色器)添加细节.纹理将是我稍后会遇到的一个侧面部分,现在我很高兴根据高度仅使用颜色,或者可能使用在片段着色器上生成的某种噪声纹理。
最佳答案
最后,经过大量研究,我可以得出结论,正如之前有人所说,没有普遍的“最佳”方法。但是我的研究使我了解了以下事情:
根据您最终将使用的网格:
关于c++ - 行星渲染的最佳 CLOD 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494699/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案