很久以前开始,我就很膜拜“高大全”的设计思想的。可能是因为在我入门之初,OGRE对我的影响,使我曾经很固执地认为,引擎就应当如OGRE这样,优美到近乎艺术品般的设计,充满古典气息。
但在一段痛苦而又充满刺激的自我挑战过程中,我不断地褪下自己身上这层深深附着的皮。它曾试图阻止,并让我很疼痛,但,最终,还是意识到,在实践的过程中,没有最优的设计——NO SILVER BULLETS。我必须学会懂得放弃,必须学会放弃任何可能的束缚,以获得自我的救赎和新生。
直到今年年初为止,我还对那种能够“功能内敛,而向外抵御伤害”的体系抱有希望,但在现实面前,却最终发现,艺术品,当它放在高雅的地方,那它就不可亵渎;但如果是在沼泽之中,那么,它就于垃圾无二了。不幸的是,需求就是沼泽,它复杂多变,无法琢磨。很可能你这一脚还在为踩在石头上而兴高采烈,而下一脚已经迈向了死亡的通道……
如果我们把一切都放得简单一点,事实上,代码最终归结,总是在于每一个独立支撑的功能点,而重复的地方,也往往容易发生在具体的功能点上。封装,当然,可以按照教科书那样,被理解为面向一个体系庞大复杂,能够描述一个完整世界的自上而下的过程,但其实,又何尝不可理解为一个面向每个孤立的功能点和支撑点,构成一个个互相独立而自我完善的支撑点和接口的自下而上的过程呢?或者,事实上,更多的情况是:在上方自上而下的设计,和在下方自下而上的设计,在中间层发生激烈的交火和冲突,互相试图吞没对方,而又互相竭力保持着自己的影响。两个势均力敌的对手,从项目的开始就在这样的冲突,直到项目的结尾也毫不松懈。
归结到引擎。过去我的思路,正如我所说的那样,复杂的类结构,复杂的场景体系。但现在,我开始相信,一个完善的中间层,势必需要一个个功能独立,结构完善,接口明晰的底层模块的建立——这并不简单的在说那些VB/IB/Camera之类的东西。地形、空间、场景结构,我曾将之勾画到场景的核心之中,但带来的结果,除了使中间层的场景变得僵化之外,还迫使很多不必要的东西,被迫由这些本来应该简单而短小的模块去承受不该它们承受,它们也无法承受的重量。
举个例子说,实际上,地形就是一组特殊的mesh。而空间剖分和场景结构,一般也就是对一个现有mesh和mesh组的分析、重建、标定过程。这样,一般的,在相应的构件过程完毕之后,这些东西所剩下的应该仅仅是一组特色的工具方法(对地形而言,lod的确定,以及对空间而言,空间的定位和遍历)和大量的信息函数。物体?场景中的物体?交给中间层吧。
将一个完整的中间层作为你能发布的东西,但是,更底层的,引擎的核心,保留一些自由、僵直、自封闭、透明的孤立的功能点,或许是更好的设计?
我不敢确定,但,既然开始了,那就应该继续下去……
分享到:
相关推荐
考虑到系统的高频使用、大数据量以及数据的重要性,子系统设计需确保操作简便、功能实用且具备高容错性,同时具备一定的灵活性以适应组织结构的变化。 在5.2章节中,还展示了技术开发子系统顶层的数据流图以及各个...
针对小学四年级学生的语文作文教学,主题“变……了”不仅是一个观察环境变化的视角,更是一种培养思维和表达的契机。本篇教案以“变……了”为主题,引导学生发现并表达校园环境以及个人思想行为的变化,通过一系列...
总结来看,这篇“真没想到……”的作文不仅是一次个人经历的叙述,更是一次深入心灵的自我剖析。它展示了青少年在学习过程中的心理变化,以及如何在挑战和误解中找到成长的机会。通过这篇文章,我们可以看到学习的...
### 大型门户网站架构设计关键知识点 ...以上六个方面共同构成了大型门户网站的核心架构设计思路,通过这些技术和策略的综合运用,能够有效地应对高并发访问、海量数据处理等挑战,保障网站的稳定运行和优秀用户体验。
可以写:“从未像现在这样,……的变化如此明显。”或“越来越多的人开始认识到……的重要性。” 1-4 引用法: 引用名言或代表性观点来开启文章,为展开论述铺垫。如引用培根的“知识就是力量”,或一位美国哲学家...
- 组件化:通过组件化的思路构建系统,提高了代码的复用性和系统的灵活性。 - 平台独立性:支持多种编程语言,不仅仅是C#,还包括Visual Basic .NET等。 **1.2 .NET与C#** - **C#的角色**:C#是一种专为.NET平台...
2. 文字附带原型:对于逻辑复杂的后端需求,可能更适合使用Word、Excel或TXT格式的文档,便于在编写过程中梳理思路,暴露潜在问题。这种文档通常包括版本说明、背景、目标、需求范围、需求用例和参考资料等部分。 ...
1. “相反,有一些人同意……”,用于对比两种对立的观点,例如“相反,有人认为应该加强环保法规”。 2. “然而,我认为这不是解决……的好办法”,可以用来提出自己对某解决方案的批评,比如“然而,我认为过度...
计…………………………………………………………11 在信息技术飞速发展的今天,单片机的应用已经渗透到各个领域,尤其是在温度控制方面。单片机的远程温度控制仪表设计方案旨在利用微处理器技术实现对温度的精确、...
它不仅涵盖了常见的句式结构,如“有”、“像”、“越……越……”、“因为……所以……”,还丰富了学生对生活常识、自然现象、季节变化、情感表达等多个方面的理解,为学生营造了一个全面的语文学习环境。...
* 思路点睛:如果拿走 4 根,那么 12 根火柴还剩 8 根,用 8 根火柴摆成 3 个一样的三角形,8÷3=2……2,必定有 1 根火柴要充当 2 个三角形的公共边,也就是说,摆出的 3 个一样三角形必定在 2 个三角形连在一起。...
你可以直接表明:“从未像现在这样,……的变化如此明显。”或者“越来越多的人开始意识到……的重要性。”这种直接的表达方式能够迅速传达你的中心思想。 1-4 引用法是一种增加文章权威性的方式。引用名言或有影响...
增量式 Step 函数的格式为:STEP (x, x0, h0, x1, h1)+STEP (x, x1, h2, x2, h3)+……,其中每个Step函数都是独立的,可以自由地组合以描述复杂的自变量变化。 两种表示方法都可以用于描述同一种自变量变化,但是...
随着健康险普及而导致的推广边际效率递减……各种因素叠加使得近两年健康险的增速开始放缓。 健康险产品的创新思路 健康险产品的创新思路都围绕着补充保障缺口进行边际改善,例如,重疾险的创新思路是如何开发“新...
有一次我想要统计微信群里哪些同学在北京,但发现直接问是很难得到准确结果的…… 这时候不如运用 wxpy 这个库抓取所有群友的地区信息,很快就可以得到想要的结果,甚至还精确到了区。 下面来分享一下这个微信群友...
- **示例1**:我们建立了一个微分方程模型来描述这些用途的变化率,以及这种变化将如何影响研究区域内总体的水资源消耗。 - **示例2**:我们考察了……的数学效应。我们开发了一种详细的……模拟方法来测试我们的...
一篇优秀的作文不仅要有清晰的观点和有力的论据支撑,还需要通过有效的过渡与衔接,使得整篇文章的逻辑更加顺畅、思路更加连贯。 **过渡与衔接的重要性** 文章中的过渡与衔接,就好比木器中的楔子和胶水,将不同的...
4. **With the increase/growth of the population...**:随着人口的增加……,描述变化背景。 5. **It is necessary/important/proper/urgent (for sb.) to do / that...**:……是必要的/重要的/适当的/紧急的,...
7. 句式练习:如“有的……有的……还有的……”的句型,常用于描述多种并列的行为或状态,如“操场上,同学们有的在踢足球,有的在打篮球,还有的在跳绳,玩得不亦乐乎。” 8. 写作技巧:文章通过叙事和人物对话,...
在准备高考英语作文时,使用有效的模板可以帮助考生更好地组织思路,确保文章结构清晰、论点明确。以下为三种常见的英语作文模板,它们分别适用于不同类型的议论文和图表分析文。 模版1适用于阐述个人观点的文章: ...