西历07年7月16日夜,小白偶醉,一眼看过廿四年,有感而发,遂属文若此。通篇信口雌黄,大言不惭,乳臭未干,愿得高人指点教诲。
记得自己曾说过:“游戏向左,引擎向右”,现在想想,这大抵是对的。做项目的人可以不懂一个三角形是如何渲染的(当然懂了更好做项目),他只需要知道如何使用自己手上能掌握的资源,多快好、且扩展性强地完成自己的工作。他可能不会写导出器,但他只要会用导出插件,他可能不会写BSP,但他只要会导出BSP,他可能没听说过LOD,但他也不用去管LOD,总之,他可能很多东西都不会写,只是知道那回事儿,那么他就可以作游戏——更多的时候,他的代码更直接地接触游戏的本质,AI啊,伤害判定啊,魔法技能啊,UI逻辑啊(虽然UI逻辑实实在在不应该用Hard Code写),等等等等……。所以如果你想作游戏,而不是引擎,而且想更快就深入你自己的那套故事之中,那倒不防直接去下载个免费的游戏引擎,或者很便宜的商业引擎,或者商业引擎试用版。但,当然的,这不应该是我们逃避不去认识底层引擎和API的借口。
引擎有几个概念上的引擎:一个是狭义的,仅对API进行包装,使其满足自己需求的引擎,这基本上不应该叫做引擎的。一个是将这些包装统一到场景和游戏构架中来, 完成一个整体的FrameWork,类如OGRE。一个是将FrameWork升华成包括编辑器、工具、UtilCode在内的整一套商业引擎。它们的目的是不同的,使用的也是不同的手法,即便是为了同样的目的,完成的手段也可能不同。OGRE和Irrlicht的方案就不太一样,而一个习惯了OGRE的优雅的人,是很难接受HL2:Source的,道理一样。引擎是贪婪的,永远不能满足于目前能达到的结果,虽然不是一切都有可能,但是应试图在硬件允许的情况下,尽自己最大的可能。
引擎更多的时候不是在具体的DrawPrimitive上左右徘徊,而是在某个引擎模块的构架上挑三拣四。最多的时候,需要在多个方案之中做一个权衡。当手中只有一个方案——DrawPrimitive、SetRenderState、Lock-Unlock——的时候,你不会找不到方向,引擎开发之所以有难度,就是当多个方案同时错综复杂地涌现时,很可能会瞬间找不到北。很多时候,一个构架上的小小瑕疵,就可能在几个月后、甚至一年后,形成一场风暴。但一开始你还没有任何办法,只能碰运气地挑一个方案一头撞到底。在构架的过程中形成的经验——无论成功的还是失败的——这是那些商业引擎越做越勇,越做越自信的原因。因此加强交流是必要地,多看看别人的,成功或者失误,是提高自己的最好手段。
虽然很多时候,考虑到未来的情况,会对引擎的扩展性有很大的帮助。但是有时候,对于引擎的某些部分,并不是特别必要。过度设计反倒会给用户和扩展者带来麻烦。按照唯物辩证法的观点,“活”的东西必须立于“死”的之上,因此,探讨灵活性和扩展性的前提是探讨不变性。虽然给他们太少的选择是不负责任,然而,给用户太多的选择仍然依旧是对他们的不负责任,也会增加自己的维护成本。用户需要的是成熟的解决方案——大部分情况下,他不想去管一个Button是如何地千变万化,他仅需要捕获Button的按下消息。这就正如Windows开发一样,API可以说是最灵活的了,Windows可以做什么,API就能做什么,但是为什么还有人要去冒着被鄙视的危险使用.net呢?因为很多API,按照大部分认的要求,封装之后,也不过就是.net那样子!扩展性可考虑使用COM的方式,如果这个体系不能用了,就干脆整个换一套体系,只要接口安全即可。封装可以封装的,暴露有必要暴露的,接口的设计应以简单为主。简单不仅仅意味着健壮行的增强,也意味着可以在简单模块的基础上,通过多个简单模块扩展出一个复杂的模块。.net的很多类都非常简单,但并不影响其健壮和扩充性。
很多前辈们都不赞同新手把时间花在引擎上,而我可能现在也不是像几年前那么特别地赞同了。花那么大成本,做了一个那样的引擎,大部分是API包装,或者仅有一个简单的Frame Work,甚至没有地图编辑器,一般都高不成低不就,有什么用呢?能力强?一般要是要求高的项目都会不惜血本买来国外的引擎,或者国内非常有经验的引擎团队,你的引擎可以跟他们比吗?免费?你的引擎能竞争过才一台电脑钱的Torque Game Engine Advance吗?没有项目愿意采用,引擎就等于被判了无期徒刑。
但是,心平气和一些,我想,很多人都忽视了一点,就是,如果你做了一个引擎,你可能会后悔一两天,但如果你没有做这个引擎,你可能会后悔一辈子。原理上说,一开始不应该做引擎,这就正如原理上说,每个小康的人都能买到房子一样:在中国,很多事情是做不到的。行业本身的就不用说了,是人都知道怎么回事。而对于个人的培养而言,在还没有诞生一个不 那么迫切地为了钱 ,而是为国民的未来,国家的未来的正经八百的专门培训学校和专门培训专业之前,还有什么比做一个引擎更能让自己从一个小白更快地进入图形开发的实质呢?
另外在独立或者团队完成这个引擎的同时,我们每个人都从中汲取了丰富的营养,它让我们每个人都受益,都迅速地提高。有可能你在项目代码中调用了数千行SetTextureStageState,但还不如在写引擎的时候写一句SetTextureStageState,因为前者,这些调用往往隐藏在模型、地形等高层系统的后面,如非必要你根本不需要去理会,即便要理会你也会优先去查阅相应引擎的文档而不是DX9的文档;而后者则需要你认真地去查阅DX9的文档,看清楚到底这个函数有哪些需要注意的问题。
这或许也是我还在闲暇时间维护自己的那些个破玩艺儿的原因,你可以说它出自于我愤青般无聊的激情,但我更愿意相信那来自于我理性的激进。
引擎是商品,用户买你的引擎是因为他们相信你的引擎可以更快,更好地完成他们的目的。即便是再绚的引擎,但如果不好用,也不会得到用户的青睐的。
夜半小酌,独坐于榻,若有所思,歌月徘徊,舞影凌乱,得废话若干,贴于此,仅聊然以自娱耳。不值一笑,不值一笑……
分享到:
相关推荐
Fairy Pieces Engine是用于象棋游戏的模拟和验证引擎。 根据AGPL v3.0许可。 目标 提供能够表示国际象棋及其许多派生变体的数据结构。 提供了用用户定义的动作表示自定义作品的功能。 引擎应该代表哪些变体? ...
lim_3ck_01b_0718
内容概要:本文介绍了一种新颖的变压器模型C2Former(Calibrated and Complementary Transformer),专门用于解决RGB图像和红外图像之间的物体检测难题。传统方法在进行多模态融合时面临两个主要问题——模态错位(Modality miscalibration)和融合不准确(fusion imprecision)。作者针对这两个问题提出采用互模交叉注意力模块(Inter-modality Cross-Attention, ICA)以及自适应特征采样模块(Adaptive Feature Sampling, AFS)来改善。具体来说,ICA可以获取对齐并且互补的特性,在特征层面进行更好的整合;而AFS则减少了计算成本。通过实验验证了基于C2Former的一阶段和二阶段检测器均能在现有公开数据集上达到最先进的表现。 适合人群:计算机视觉领域的研究人员和技术人员,特别是从事跨模态目标检测的研究人员,对Transformer架构有一定了解的开发者。 使用场景及目标:适用于需要将可见光和热成像传感器相结合的应用场合,例如全天候的视频监控系统、无人驾驶汽车、无人
pepeljugoski_01_0108
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
lusted_3ck_02_1118
内容概要:本文提出了用于虚拟同步发电机(VSG)在非对称电网故障期间的一种自适应低电压穿越(LVRT)方法。现有LVRT方法由于故障检测延迟可能导致逆变器损坏的问题以及新的电网标准(GCs)规定了逆变器基资源(IBRs)需要注入负序电流的需求。所提出的LVRT方法采用初始故障时刻电压控制环差补及有功功率环相角调整,使系统能够在正常运行时保持特性不受影响,并在出现不对称故障时立即限制输出电流。模拟结果显示,新方法不仅能迅速响应并抑制故障电流,在不同类型的不对称故障条件下亦能良好表现。此外,该方法不需要参数设计,且能够最大限度利用IBRs电流,同时维持IBRs电压源特性和符合新的GCs。 适合人群:电力电子与能源系统的学术研究人员和技术人员,熟悉虚拟同步发电技术以及LVRT相关背景的工程师。 使用场景及目标:主要适用于包含虚拟同步发电机的新能源系统中的故障穿越技术改进,以满足最新国际电气电子工程师协会(IEEE)的电气互连标准,并解决当前LVRT方法无法全面符合规范的问题,确保系统的安全可靠运行。该研究可用于改进新能源并网逆变器的设计。 其他说明:文章通过对现有的LVRT控制方法进行改进来
内容概要:本导读书籍《DeepSeek从入门到精通》旨在为读者提供对AI工具DeepSeek全面的认识。书籍首先概述了DeepSeek作为一个国产、开源的多功能AI平台的功能和特点,接着详细介绍了如何入门操作,并通过实战演示来帮助用户掌握不同应用场景下的高级提示词策略和使用技巧,如针对不同类型的提示语的设计方法和实际应用。特别是在‘发散’部分,对提示语进行了深入剖析,不仅探讨了提示词的高级技术和策略,还包括AI幻觉、人机协作以及知识生成等方面的讨论,有助于用户深入理解和灵活应用提示词,在各种任务中提高效率并获得更好的效果。最后一章展望了AI与人类在未来内容创作中的角色转变和发展趋势。这本详细的指导手册能帮助读者形成系统的AI工具认知和技术体系,快速上手并在实践中不断加深对该领域的理解。 适用人群:面向希望深入了解AI工具尤其是提示词设计的专业人士、开发者及所有有兴趣探索这一领域的个人;适合有一定技术背景的从业者。 使用场景及目标:帮助初学者快速启动DeepSeek的日常使用,为中高级用户提供更深入的高级功能理解和实践,特别是涉及提示词构建的技术细节,助力于提升特定任务处理效率和结果品质
下载 1. 单击“立即下载”,以下载该文件。 2. 出现“文件下载”窗口后,单击“保存”,以将文件保存到硬盘。 安装 1. 浏览至文件下载目标位置并双击新下载的文件。 2. 仔细阅读对话窗口中显示的发布信息。 3. 下载并安装对话窗口中标识的任何必备项,然后再继续。 4. 单击“Install”(安装)按钮。 5. 按照其余提示执行更新。 安装 1. 将解压的文件复制到可访问Windows的介质。 2. 将系统重新引导至Windows操作系统。 3. 打开“服务器管理器”->“设备管理器”->“存储控制器”,然后单击“PERC控制器”。 5. 单击“更新驱动程序软件”,并按照提示更新驱动程序。 4. 重新引导系统以使更改生效。
Saxena_01_0107
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
第8节模型预测控制在运动规划中的应用
覆盖了人口统计、经济发展、教育体系、环境资源等多个关键领域,旨在为研究人员、政策规划者及相关各界提供全面洞察社会现状与趋势的窗口。 2024年修订内容如下: 资源和环境–增加“倒塌房屋间数”。 农业–增加“大豆”、“花生”、“油菜籽”、“芝麻”“甘蔗”“甜英”业及辅助性活动”产值和指数。 工业–增加“智能手机”产量。 卫生和社会服务–增加“分地区儿童健康情况`和“分地区孕产妇健康情况”。 文化和体育–增加公共图书馆“少儿文献数”和国有博物馆“未成年人参观人次”情况。 城市、农村和区域发展–增加“乡村办水电站”“农村水电装机容量”“农村水电年发电量”情况。 科学技术–新增分行业新产品开发经费支出、新产品销售收入等指标。 运输、邮电和软件业–公路营业性客运量包括班车包车客运量、公共汽电车城际城乡客运量、出租汽车(含巡游出租汽车、网络预约出租汽车)城际城多客运量 运输、邮电和软件业–公路客运周转量包括班车包车客运周转量、公共汽电车城际城乡客运周转量、出租汽车(含巡游出租汽车、网络预约出租汽车)城际城乡客运周转量。 就业和工资、固定资产投资、工业、建筑业、批发和零售业、房地产、科学计算等修订主要内容: (1)拓展适用范围 为了更全面覆盖统计调查对象,新标准按照市场主体登记注册管理实际对分类范围作相应调整,从“企业”扩大至所有“市场主体”,增加了“农民专业合作社(联合社)”和“个体工户”等类别。 (2)取消相关类别 由于《中华人民共和国私营企业暂行条例》已被废止,根据《中华人民共和国公司法》《中华人民共和国个人独资企业法》《中华人民共和国合作企业法》,将相关“私营有限责任公司”、“私营股份有限公司”分别列入“有限责任公司、“股分有限公司”范围类别。引国,“私营独资企业”调整为“个人独资企业”,“私营合伙企业”调整为“合伙企业”。 (3)调整分类结构 一是关于“内资企业”。根据《中华人民共和国市场主体登记管理条例》规定,将原内资企业分类“国有企业”“集体企业”、“股份合作企业”、“联营企业”、“有限责任公司”、“股份有限公司”、“私营企业”和“其他企业”等8个类别调整为“有限责任公司”、“股份有限公司”、“非公司企业法人”、“个人独资企业”、合伙企业”和“其他内资企业”等6个类别。其中,原“国有企业”、“集体企业”、“股份合作企业”“联营企业”纳入新类别“非公司企业法人”下;原“私营企业”类别取消(上段已述)。二是关于“外商投资企业”和“港澳台投资企业”。根据《中华人民共和国外商投资法》规定,将原外商投资企业分类“中外合资经营企业”“中外合作经营企业”、“外资企业”、“外商投资股份有限公司”和“其他外商投资企业”等5个类别调整为“外商投资有限责任公司”、“外商投资股份有限公司”、“外商投资合伙企业”和“其他外商投资企业”等4个类别。港澳台投资企业参照外商投资企业分类方法调整。 (4)规范类别名称根据市场监管部门对登记注册管理的规范名称,分别将原“国有企业”、“集体企业”更名为“全民所有制企业(国有企业)”、“集体所有制企业(集体企业)” (5)统一内资范围根据《中华人民共和国外商投资法》和相关部门规定,将登记注册为内资公司的有限责任公司(外商投资企业投资)、登记注册为内资公司的股份有限公司(上市、外商投资企业投资)等市场主体,即外商投资企业市场主体在中国境内的再投资市场主体,由原标准中的“外商投资企业”调整为新标准中的“内资企业”相关类别。
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
基于comsol 6.2软件,建立了单晶生长的二维模型,用的是数学模块的PDE方法,涵盖了温度场和浓度场。
Gaussian_Filter
lim_3ck_01_0519