前端技术
HTML
CSS
Javascript
前端框架和UI库
VUE
ReactJS
AngularJS
JQuery
NodeJS
JSON
Element-UI
Bootstrap
Material UI
服务端和客户端
Java
Python
PHP
Golang
Scala
Kotlin
Groovy
Ruby
Lua
.net
c#
c++
后端WEB和工程框架
SpringBoot
SpringCloud
Struts2
MyBatis
Hibernate
Tornado
Beego
Go-Spring
Go Gin
Go Iris
Dubbo
HessianRPC
Maven
Gradle
数据库
MySQL
Oracle
Mongo
中间件与web容器
Redis
MemCache
Etcd
Cassandra
Kafka
RabbitMQ
RocketMQ
ActiveMQ
Nacos
Consul
Tomcat
Nginx
Netty
大数据技术
Hive
Impala
ClickHouse
DorisDB
Greenplum
PostgreSQL
HBase
Kylin
Hadoop
Apache Pig
ZooKeeper
SeaTunnel
Sqoop
Datax
Flink
Spark
Mahout
数据搜索与日志
ElasticSearch
Apache Lucene
Apache Solr
Kibana
Logstash
数据可视化与OLAP
Apache Atlas
Superset
Saiku
Tesseract
系统与容器
Linux
Shell
Docker
Kubernetes
[OpenCV VideoCapture类...]的搜索结果
这里是文章列表。热门标签的颜色随机变换,标签颜色没有特殊含义。
点击某个标签可搜索标签相关的文章。
点击某个标签可搜索标签相关的文章。
转载文章
...删除相应内容。 网络摄像机的使用 开发环境为win7+VS2010+opencv (主要是操作系统windows,Linux还没尝试) 基于Basler_acA1300-30gc 摄像机为例 1 安装摄像机的相关软件 2 接线连接硬件设备 将相机通过GigE接口与PC笔记本连接 3 通过ip地址实现相机与PC通信 3.1 用相机软件设计出摄像机的参数主要为IP地址 用pylon IP Configurator设置相机IP地址 双击设备acA13... 进入IP设置界面 输入您要设置的IP,基本改后2段,记住您设置的IP,之后要用。忘记了可以返回来再看看。 设置完保存,则为相机设置了通信的IP地址 3.2 在PC或笔记本上设置要通信IP地址 在网络连接里设置获取的ip, 打开网络设置 本地链接 属性 ipv4 将自动获取ip地址改为,使用下面ip地址 需要设置的ip地址。特别要注意最后一位与摄像机的ip地址后一位是不同的。 设置完以后保存这样就可以实现通过ip地址通信。 你可以用相机自带的软件来打开摄像机。可以通过笔记本上的,网络设备通过菜单栏选择要打开的摄像机,打开相机观察效果。 4 连接了多个摄像机 如果要连接了多个摄像机,参考我上一篇的博客,设置你需要打开的那个摄像机。 VideoCapture类,其实0,1……的设备ID号看WIN7下设备管理器—图像设备,对应的搜引号,从0开始 5 一般情况SDK无用(论) 一般情况下不需要SDK也可以实现基本的相机操作, 我们一般认为,调用工业摄像机需要SDK,其实现在opencv的类vediocapture已经不需要sdk也可以调用摄像机。你可以我先用摄像机自带的软件设计摄像机的参数,采集速度曝光分辨率等参数。然后直接调用即可。 本篇文章为转载内容。原文链接:https://blog.csdn.net/KYJL888/article/details/69367507。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-09-02 09:33:05
581
转载
转载文章
...ure 出版社:电子工业出版社 出版时间:2014-1-1 开本:16 页数:800 字数:1093400 ISBN:9787121222887 内容简介 《游戏引擎架构》同时涵盖游戏引擎软件开发的理论及实践,并对多方面的题目进行探讨。本书讨论到的概念及技巧实际应用于现实中的游戏工作室,如艺电及顽皮狗。虽然书中采用的例子通常依据一些专门的技术,但是讨论范围远超于某个引擎或API。文中的参考及引用也非常有用,可让读者继续深入游戏开发过程的任何特定方向。 《游戏引擎架构》为一个大学程度的游戏编程课程而编写,但也适合软件工程师、业余爱好者、自学游戏程序员,以及游戏产业的从业人员。通过阅读《游戏引擎架构》,资历较浅的游戏工程师可以巩固他们所学的游戏技术及引擎架构的知识,专注某一领域的资深程序员也能从本书更为全面的介绍中获益。 內容包括: 游戏开发中的大规模C++软件架构 游戏编程所需的数学 供调试、源代码控制及性能剖析的游戏开发工具 引擎基础系统、渲染、碰撞、物理、角色动画、游戏世界对象模型等引擎子系统 多平台游戏引擎 多处理器环境下的游戏编程 工作管道及游戏资产数据库 作者/译者简介 作者介绍:Jason Gregory在1994年开始任职专业软件工程师,自1999年3月开始在游戏产业中任职软件工程师。在圣迭哥Midway Home Entertainment公司开始游戏编程的他,为《疯狂飞行员(Freaky Flyers)》及《Crank the Weasel》开发PlayStation 2/Xbox上的动画系统。在2003年,他转到洛杉矶艺电,为《荣誉勋章:血战太平洋(Medal of Honor: Pacific Assault)》开发游戏引擎及游戏性技术,并在《荣誉勋章:空降神兵(Medal of Honor: Airborne)》中担任首席工程师。他现时是顽皮狗公司的通才程序员,为《神秘海域:德雷克船长的宝藏(Uncharted: Drake's Fortune)》及《神秘海域:纵横四海(Uncharted: Among Thieves)》开发引擎及游戏性软件。他也在南加州大学教授游戏技术的课程。 译者简介:叶劲峰(Milo Yip)从小自习编程,并爱好计算机图形学。上中学时兼职开发策略RPG《王子传奇》,该游戏在1995年于台湾发行。其后他获取了香港大学认知科学学士、香港中文大学系统工程及工程管理哲学硕士。毕业后在香港理工大学设计学院从事游戏引擎及相关技术的研发,职至项目主任。除发表学术文章外,也曾合著《DirectX9游戏编程实务》。2008年往上海育碧担任引擎工程师开发《美食从天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,2009年起于麻辣马开发《爱丽丝:疯狂回归(Alice: Madness Returns)》Xbox360/PS3/PC,2011年加入腾讯互动娱乐引擎技术中心担任专家工程师,所研发的技术已用于《斗战神》、《天涯明月刀》、《众神争霸》等项目中。 推荐序1 最初拿到《Game Engine Architecture》一书的英文版,是编辑侠少邮寄给我的打印版。他建议我接下翻译此书的合同。当时我正在杭州带领一个团队开发3D游戏引擎,我和我的同事都对这本书的内容颇有兴趣,两大本打印的英文书立刻在同事间传开。可惜那段时间个人精力顾及不来,把近千页的英文读物精读而后翻译成中文对个人的业余时间是个极大的挑战,不能担此翻译任务颇为遗憾。 不久以后听说Milo Yip(叶劲峰)已开始着手翻译,甚为欣喜。翻译此巨著,他一定是比我更合适的人选。我和Milo虽未曾蒙面,但神交已久。在网络上读过一些他的成长经历,和我颇为相似,心有戚戚。他对游戏3D实时渲染技术研究精深为我所不及,我们曾通过Google Talk讨论过许多技术问题,他都有独到的见解。翻译工作开始后,Milo是香港人,英文技术术语在香港的中文译法和大陆的有许多不同。但此书由大陆出版社出版,考虑到面对的读者主要是大陆程序员,Milo希望能更符合大陆程序员的用词习惯,所以在翻译一开始就通过Google Docs创建了协作页面,邀请大家共同探讨书中技术名词的中译名。从中我们可以一窥他作为译者的慎重。 三年之后,有幸在出版之前就拿到了完整的译本。这是一本用LaTeX精心排版的800页的电子书,我只花了一周时间,几乎是一口气读完。流畅的阅读享受,绝对不仅仅是因为原著精彩的内容,精美的版面和翔实的译注也加了不少分。 在阅读本书的过程中,我不只一次地获得共鸣。例如在第5章的内存管理系统的介绍中,作者介绍的几种游戏特有的内存管理方法我都曾在项目中用过,而这是第一次有书籍专门将这些方法详尽记录;又如第11章动画系统的介绍,我们也同样在3D引擎开发过程中改进原有动画片段混合方法的经历。虽然书中介绍的每个技术点,都可能可以在某篇论文,某本其他的书的章节,某篇网络blog上见过,但之前却无一本书可以把这些东西放在一起相互参照。对于从事游戏引擎开发的程序员来说,了解各种引擎在处理每个具体问题时的方案是相当重要的。而每种方案又各有利弊,即使不做引擎开发工作而是在某一特定游戏引擎上做游戏开发,从中也可以理解引擎的局限性以及可能的改进方法。尤其是第14章介绍的对游戏性相关系统的设计,各个开发人员几乎都是凭经验设计,很少见有书籍对这些做总结。对于基于渲染引擎做开发的游戏程序员,这是必须面对的工作,这一章会有很大的借鉴意义。 本书作者是业内资深的游戏引擎开发人,他所参于的《神秘海域》和《最后生还者》都是我的个人最爱。在玩游戏的过程中,作为游戏程序员的天性,自然会不断地猜想各个技术点是如何实现的,背后需要怎样的工具支持。能在书中一一得到印证是件特别开心的事情。作者反复强调代码实践的重要性,在书中遍布着C++代码。我不认为这些代码有直接取来使用的价值,但它们极大地帮助了读者理解书中的技术点。书中列出的顽皮狗工作室用lisp方言作为游戏配置脚本的范例也给我很大的启发,有了这些具体的代码示例以及作者本身的一线工程师背景,也让我确信书中那些关于主机游戏开发相关等,我所没有接触过的内容都也绝非泛泛而谈。 国内的游戏开发社区的壮大,主要是随最近十年的MMO风潮而生。而就在大型网络游戏在中国有些畸形发展,让这类游戏偏离电子游戏游戏性的趋势时,我们有幸迎来了为移动设备开发游戏的大潮。游戏开发的重心重新回到游戏性本身。我们更需要去借鉴单机游戏是如何为玩家带来更纯粹的游戏体验,我相信书中记录的各种技术点会变的更有帮助。 资深游戏开发及创业者 云风 @简悦云风 推荐序2 在我认识的许多游戏业开发同仁中,只有少数香港同胞,Milo Yip(叶劲峰)却正是这样一位给我印象非常深刻的优秀香港游戏开发者。我俩认识,是在Milo加入腾讯互动娱乐研发部引擎技术中心后,说来到现在也只是两年多时间。其间,他为人的谦逊务实,对待技术问题的严谨求真态度,对算法设计和性能优化的娴熟技术,都为人所称道。Milo一丝不苟的工作风格,甚至表现在对待技术文档排版这类事情上(Milo常执著地用LaTeX将技术文档排到完美),我想这一定是他在香港读大学、硕士及在香港理工大学的多媒体创新中心从事研究员,一贯沿袭至今的好作风。 我很高兴腾讯游戏有实力吸引到这样优秀的技术专家;即使在其已从上海迁回香港家中,依然选择到深圳腾讯互动娱乐总部工作。叶兄从此工作日每天早晚过关,来往香港和深圳两地,虽有舟车劳顿,但是兼顾了对家庭的照顾和在游戏引擎方面的专业研究,希望这样的状况是令他满意的。 认识叶兄当时,我便知道他在进行Jason Gregory所著《游戏引擎架构》一书的中译工作。因为自己从前也有业余翻译游戏开发有关书籍的经历,所以我能理解其中的辛苦和责任重大,对叶兄也更多一分钦佩。我以为,本书以及本书的中文读者最大的幸运便是,遇到叶兄这位对游戏有着如同对家对国般强烈责任感,犹如“游戏科学工作者”般的专业译者! 现在(2013年年末)无疑是游戏史上对独立游戏制作者最友好的年代。开发设备方便获得(相对过往仅由主机厂商授权才能获得专利开发设备,现在有一台智能手机和一台个人电脑就可以开发)、技术工具友好、调试过程简单方便,且互联网上有丰富的例程和开源代码参考,也有网上社区便于交流。很多爱好者能够很快地制作出可运行的游戏原型,其中一些也能发布到应用商店。 但是不全面掌握各方面知识,尤其是游戏引擎架构知识,往往只能停留在勉强修改、凑合重用别人提供的资源的应用程度上,难以做极限的性能改进,更妄谈革命式的架构创新。这样的程度是很难在成千上万的游戏中脱颖而出的。我们所认可的真正的游戏大作,必定是在某方面大幅超越用户期待的产品。为了打造这样的产品,游戏内容创作者(策划、美术等)需要“戴着镣铐跳舞”(在当前的机能下争取更多的创作自由度),而引擎架构合理的游戏可以经得起──也值得进行──反复优化,最终可以提供更多的自由度,这是大作出现的技术前提。 书的作者、译者、出版社的编者,加上读者,大家是因书而结缘的有缘人。因叶兄这本《游戏引擎架构》译著而在线上线下相识的读者们,你们是不是因“了解游戏引擎架构,从而制作/优化好游戏”这样的理想而结了缘呢? 亲爱的读者,愿你的游戏有一天因谜题巧妙绝伦、趣味超凡、虚拟世界气势磅礴、视觉效果逼真精美等专业因素取得业界褒奖,并得到玩家真诚的赞美。希望届时曾读叶兄这本《游戏引擎架构》译作的你,也可以回馈社会,回馈游戏开发的学习社区,帮助新人。希望你也可以建立微信公众号、博客等,或翻译游戏开发书籍,造福外语不好的读者,所以如果你的外语(英语、日语、韩语之于游戏行业比较重要)水平仍需精进,现在也可以同步加油了! 腾讯《天天爱消除》游戏团队Leader 沙鹰 @也是沙鹰 译序 数千年以来,艺术家们通过文学、绘画、雕塑、建筑、音乐、舞蹈、戏剧等传统艺术形式充实人类的精神层面。自20世纪中叶,计算机的普及派生出另一种艺术形式──电子游戏。游戏结合了上述传统艺术以及近代科技派生的其他艺术(如摄影、电影、动画),并且完全脱离了艺术欣赏这种单向传递的方式──游戏必然是互动的,“玩家”并不是“读者”、“观众”或“听众”,而是进入游戏世界、感知并对世界做出反应的参与者。 基于游戏的互动本质,游戏的制作通常比其他大众艺术复杂。商业游戏的制作通常需要各种人才的参与,而他们则需要依赖各种工具及科技。游戏引擎便是专门为游戏而设计的工具及科技集成。之所以称为引擎,如同交通工具中的引擎,提供了最核心的技术部分。因为复杂,研发成本高,人们不希望制作每款游戏(或车款)时都重新设计引擎,重用性是游戏引擎的一个重要设计目标。 然而,各游戏本身的性质以及平台的差异,使研发完全通用的游戏引擎变得极困难,甚至不可能。市面上出售的游戏引擎,有一些虽然已经达到很高的技术水平,但在商业应用中,很多时候还是需要因应个别游戏项目对引擎改造、整合、扩展及优化。因此,即使能使用市面上最好的商用引擎或自研引擎,我们仍需要理解当中的架构、各种机制和技术,并且分析及解决在制作中遇到的问题。这些也是译者曾任于上海两家工作室时的主要工作范畴。 选择翻译此著作,主要原因是在阅读中得到共鸣,并且能知悉一些知名游戏作品实际上所采用的方案。有感坊间大部分游戏开发书籍并不是由业内人士执笔,内容只足够应付一些最简单的游戏开发,欠缺宏观比较各种方案,技术与当今实际情况也有很大差距。而一些Gems类丛书虽然偶有好文章,但受形式所限欠缺系统性、全面性。难得本书原作者身为世界一流游戏工作室的资深游戏开发者(注1),在繁重的游戏开发工作外,还在大学教授游戏开发课程以至编写本著作。此外,从与内地同事的交流中,了解到许多从业者不愿意阅读外文书籍。为了普及知识及反馈业界社会,希望能尽绵力。 或许有些人以为本著作是针对单机/游戏机游戏的,并不适合国内以网游为主的环境。但译者认为这是一种误解,许多游戏本身所涉及的技术是具通用性的。例如游戏性相关的游戏性系统、场景管理、人工智能、物理模拟等部分,许多时候也会同时用于网游的前台和后台。现时,一些动作为主、非MMO的国内端游甚至会直接在后台运行传统意义上的游戏引擎。至于前台相关的技术,单机和端游的区别更少。此外,随着近年移动终端的兴起,其硬件性能已超越传统掌上游戏机,开发手游所需的技术与传统掌上游戏机并无太大差异。还可预料,现时单机/游戏机的一些较高级的架构及技术,将在不远的未来着陆移动终端平台。 译者认为,本书涵括游戏开发技术的方方面面,同时适合入门及经验丰富的游戏程序员。书名中的架构二字,并不单是给出一个系统结构图,而是描述每个子系统的需求、相关技术及与其他子系统的关系。对译者本人而言,本书的第11章(动画系统)及第14章(运行时游戏性基础系统)是本书特別精彩之处,含有许多少见于其他书籍的内容。而第10章(渲染引擎)由于是游戏引擎中的一个极大的部分,有限的篇幅可能未能覆盖广度及深度,推荐读者参考[1](注2),人工智能方面也需参考其他专著。 本译作采用LaTeX排版(注3),以Inkscape编译矢量图片。为了令阅读更流畅,内文中的网址都统一改以脚注标示。另外,由于现时游戏开发相关的文献以英文为主,而且游戏开发涉及的知识面很广,本译作尽量以括号形式保留英文术语。为了方便读者查找内容,在附录中增设中英文双向索引(索引条目与原著的不同)。 本人在香港成长学习及工作,至2008年才赴内地游戏工作室工作,不黯内地的中文写作及用字习惯,翻译中曾遇到不少困难。有幸得到出版社人员以及良师益友的帮助,才能完成本译作。特别感谢周筠老师支持本作的提案,并耐心地给予协助及鼓励。编辑张春雨老师和卢鸫翔老师,以及好友余晟给予了大量翻译上的知识及指导。也感谢游戏业界专家云风、大宝和Dave给予了许多宝贵意见。此书的翻译及排版工作比预期更花时间,感谢妻子及儿女们的体谅。此次翻译工作历时三年半,因工作及家庭事宜导致严重延误,唯有在翻译及排版工作上更尽心尽力,希望求得等待此译作的读者们谅解。无论是批评或建议,诚希阁下通过电邮miloyip@gmail.com、新浪微博、豆瓣等渠道不吝赐教。 叶劲峰(Milo Yip) 2013年10月 原作者是顽皮狗(Naughty Dog)《神秘海域(Uncharted)》系列的通才程序员、《最后生还者(The Last of Us)》的首席程序员,之前还曾在EA和Midway工作。 中括号表示引用附录中的参考文献。一些参考条目加入了其中译本的信息。 具体是使用CTEX套装,它是在MiKTeX的基础上增加中文的支持。 前言 最早的电子游戏完全由硬件构成,但微处理器(microprocessor)的高速发展完全改变了游戏的面貌。现在的游戏是在多用途的PC和专门的电子游戏主机(video game console)上玩的,凭借软件带来绝妙的游戏体验。从最初的游戏诞生至今已有半个世纪,但很多人仍然认为游戏是一个未成熟的产业。即使游戏可能是个年轻的产业,若仔细观察,也会发现它正在高速发展。 现时游戏已成为一个上百亿美元的产业,覆盖不同年龄、性别的广泛受众。 千变万化的游戏,可以分为从纸牌游戏到大型多人在线游戏(massively multiplayer online game,MMOG)等多个种类(category)和“类型(genre)”(注1),也可以运行在任何装有微芯片(microchip)的设备上 。你现在可以在PC、手机及多种特别为游戏而设计的手持/电视游戏主机上玩游戏。家用电视游戏通常代表最尖端的游戏科技,又由于它们是周期性地推出新版本,因此有游戏机“世代”(generation)的说法。最新一代(注2)的游戏机包括微软的Xbox 360和索尼的PlayStation 3,但一定不可忽视长盛不衰的PC,以及最近非常流行的任天堂Wii。 最近,剧增的下载式休闲游戏,使这个多样化的商业游戏世界变得更复杂。虽然如此,大型游戏仍然是一门大生意。今天的游戏平台非常复杂,有难以置信的运算能力,这使软件的复杂度得以进一步提升。所有这些先进的软件都需要由人创造出来,这导致团队人数增加,开发成本上涨。随着产业变得成熟,开发团队要寻求更好、更高效的方式去制作产品,可复用软件(reusable software)和中间件(middleware)便应运而生,以补偿软件复杂度的提升。 由于有这么多风格迥异的游戏及多种游戏平台,因此不可能存在单一理想的软件方案。然而,业界已经发展出一些模式 ,也有大量的潜在方案可供选择。现今的问题是如何找到一个合适的方案去迎合某个项目的需要。再进一步,开发团队必须考虑项目的方方面面,以及如何把各方面集成。对于一个崭新的游戏设计,鲜有可能找到一个完美搭配游戏设计各方面的软件包。 现时业界内的老手,入行时都是“开荒牛”。我们这代人很少是计算机科学专业出身(Matt的专业是航空工程、Jason的专业是系统设计工程),但现时很多学院已设有游戏开发的课程和学位。时至今日,为了获取有用的游戏开发信息,学生和开发者必须找到好的途径。对于高端的图形技术,从研究到实践都有大量高质量的信息。可是,这些信息经常不能直接应用到游戏的生产环境,或者没有一个生产级质量的实现。对于图形以外的游戏开发技术,市面上有一些所谓的入门书籍,没提及参考文献就描述很多内容细节,像自己发明的一样。这种做法根本没有用处,甚至经常带有不准确的内容。另一方面,市场上有一些高端的专门领域书籍,例如物理、碰撞、人工智能等。可是,这类书或者啰嗦到让你难以忍受,或者高深到让部分读者无法理解,又或者内容过于零散而难于融会贯通。有一些甚至会直接和某项技术挂钩,软硬件一旦改动,其内容就会迅速过时。 此外,互联网也是收集相关知识的绝佳工具。可是,除非你确实知道要找些什么,否则断链、不准确的资料、质量差的内容也会成为学习障碍。 好在,我们有Jason Gregory,他是一位拥有在顽皮狗(Naughty Dog)工作经验的业界老手,而顽皮狗是全球高度瞩目的游戏工作室之一。Jason在南加州大学教授游戏编程课程时,找不到概括游戏架构的教科书。值得庆幸的是,他承担了这个任务,填补了这个空白。 Jason把应用到实际发行游戏的生产级别知识,以及整个游戏开发的大局编集于本书。他凭经验,不仅融汇了游戏开发的概念和技巧,还用实际的代码示例及实现例子去说明怎样贯通知识来制作游戏。本书的引用及参考文献可以让读者更深入探索游戏开发过程的各方面。虽然例子经常是基于某些技术的,但是概念和技巧是用来实际创作游戏的,它们可以超越个别引擎或API的束缚。 本书是一本我们入行做游戏时想要的书。我们认为本书能让入门者增长知识,也能为有经验者开拓更大的视野。 Jeff Lander(注3) Matthew Whiting(注4) 译注:Genre一词在文学中为体裁。电影和游戏里通常译作类型。不同的游戏类型可见1.2节。 译注:按一般说法,2005年至今属于第7个游戏机世代。这3款游戏机的发行年份为Xbox 360(2005)、PlayStation 3(2006)、Wii(2006)。有关游戏机世代可参考维基百科。 译注:Jeff Lander现时为Darwin 3D公司的首席技术总监、Game Tech公司创始人,曾为艺电首席程序员、Luxoflux公司游戏性及动画技术程序员。 译注:Matthew Whiting现时为Wholesale Algorithms公司程序员,曾为Luxoflux公司首席软件工程师、Insomniac Games公司程序员。 序言 欢迎来到《游戏引擎架构》世界。本书旨在全面探讨典型商业游戏引擎的主要组件。游戏编程是一个庞大的主题,有许多内容需要讨论。不过相信你会发现,我们讨论的深度将足以使你充分理解本书所涵盖的工程理论及常用实践的方方面面。话虽如此,令人着迷的漫长游戏编程之旅其实才刚刚启程。与此相关的每项技术都包含丰富内容,本书将为你打下基础,并引领你进入更广阔的学习空间。 本书焦点在于游戏引擎的技术及架构。我们会探讨商业游戏引擎中,各个子系统的相关理论,以及实现这些理论所需要的典型数据结构、算法和软件接口。游戏引擎与游戏的界限颇为模糊。我们将把注意力集中在引擎本身,包括多个低阶基础系统(low-level foundation system)、渲染引擎(rendering engine)、碰撞系统(collision system)、物理模拟(physics simulation)、人物动画(character animation),及一个我称为游戏性基础层(gameplay foundation layer)的深入讨论。此层包括游戏对象模型(game object model)、世界编辑器(world editor)、事件系统(event system)及脚本系统(scripting system)。我们也将会接触游戏性编程(gameplay programming)的多个方面,包括玩家机制(player mechanics)、摄像机(camera)及人工智能(artificial intelligence,AI)。然而,这类讨论会被限制在游戏性系统和引擎接口范围。 本书可以作为大学中等级游戏程序设计中两到三门课程的教材。当然,本书也适合软件工程师、业余爱好者、自学的游戏程序员,以及游戏行业从业人员。通过阅读本书,资历较浅的游戏程序员可以巩固他们所学的游戏数学、引擎架构及游戏科技方面的知识。专注某一领域的资深程序员也能从本书更为全面的介绍中获益。 为了更好地学习本书内容,你需要掌握基本的面向对象编程概念并至少拥有一些C++编程经验。尽管游戏行业已经开始尝试使用一些新的、令人兴奋的编程语言,然而工业级的3D游戏引擎仍然是用C或C++编写的,任何认真的游戏程序员都应该掌握C++。我们将在第3章重温一些面向对象编程的基本原则,毫无疑问,你还会从本书学到一些C++的小技巧,不过C++的基础最好还是通过阅读[39]、[31]及[32]来获得。如果你对C++已经有点生疏,建议你在阅读本书的同时,最好能重温这几本或者类似书籍。如果你完全没有C++经验,在看本书之前,可以考虑先阅读[39]的前几章,或者尝试学习一些C++的在线教程。 学习编程技能最好的方法就是写代码。在阅读本书时,强烈建议你选择一些特别感兴趣的主题付诸实践。举例来说,如果你觉得人物动画很有趣,那么可以首先安装OGRE,并测试一下它的蒙皮动画示范。接着还可以尝试用OGRE实现本书谈及的一些动画混合技巧。下一步你可能会打算用游戏手柄控制人物在平面上行走。等你能玩转一些简单的东西了,就应该以此为基础,继续前进!之后可以转移到另一个游戏技术范畴,周而复始。这些项目是什么并不重要,重要的是你在实践游戏编程的艺术,而不是纸上谈兵。 游戏科技是一个活生生、会呼吸的家伙 ,永远不可能将之束缚于书本之上 。因此,附加的资源、勘误、更新、示例代码、项目构思等已经发到本书的网站。 目录 推荐序1 iii推荐序2 v译序 vii序言 xvii前言 xix致谢 xxi第一部分 基础 1第1章 导论 31.1 典型游戏团队的结构 41.2 游戏是什么 71.3 游戏引擎是什么 101.4 不同游戏类型中的引擎差异 111.5 游戏引擎概观 221.6 运行时引擎架构 271.7 工具及资产管道 46第2章 专业工具 532.1 版本控制 532.2 微软Visual Studio 612.3 剖析工具 782.4 内存泄漏和损坏检测 792.5 其他工具 80第3章 游戏软件工程基础 833.1 重温C++及最佳实践 833.2 C/C++的数据、代码及内存 903.3 捕捉及处理错误 118第4章 游戏所需的三维数学 1254.1 在二维中解决三维问题 1254.2 点和矢量 1254.3 矩阵 1394.4 四元数 1564.5 比较各种旋转表达方式 1644.6 其他数学对象 1684.7 硬件加速的SIMD运算 1734.8 产生随机数 180第二部分 低阶引擎系统 183第5章 游戏支持系统 1855.1 子系统的启动和终止 1855.2 内存管理 1935.3 容器 2085.4 字符串 2255.5 引擎配置 234第6章 资源及文件系统 2416.1 文件系统 2416.2 资源管理器 251第7章 游戏循环及实时模拟 2777.1 渲染循环 2777.2 游戏循环 2787.3 游戏循环的架构风格 2807.4 抽象时间线 2837.5 测量及处理时间 2857.6 多处理器的游戏循环 2967.7 网络多人游戏循环 304第8章 人体学接口设备(HID) 3098.1 各种人体学接口设备 3098.2 人体学接口设备的接口技术 3118.3 输入类型 3128.4 输出类型 3168.5 游戏引擎的人体学接口设备系统 3188.6 人体学接口设备使用实践 332第9章 调试及开发工具 3339.1 日志及跟踪 3339.2 调试用的绘图功能 3379.3 游戏内置菜单 3449.4 游戏内置主控台 3479.5 调试用摄像机和游戏暂停 3489.6 作弊 3489.7 屏幕截图及录像 3499.8 游戏内置性能剖析 3499.9 游戏内置的内存统计和泄漏检测 356第三部分 图形及动画 359第10章 渲染引擎 36110.1 采用深度缓冲的三角形光栅化基础 36110.2 渲染管道 40410.3 高级光照及全局光照 42610.4 视觉效果和覆盖层 43810.5 延伸阅读 446第11章 动画系统 44711.1 角色动画的类型 44711.2 骨骼 45211.3 姿势 45411.4 动画片段 45911.5 蒙皮及生成矩阵调色板 47111.6 动画混合 47611.7 后期处理 49311.8 压缩技术 49611.9 动画系统架构 50111.10 动画管道 50211.11 动作状态机 51511.12 动画控制器 535第12章 碰撞及刚体动力学 53712.1 你想在游戏中加入物理吗 53712.2 碰撞/物理中间件 54212.3 碰撞检测系统 54412.4 刚体动力学 56912.5 整合物理引擎至游戏 60112.6 展望:高级物理功能 616第四部分 游戏性 617第13章 游戏性系统简介 61913.1 剖析游戏世界 61913.2 实现动态元素:游戏对象 62313.3 数据驱动游戏引擎 62613.4 游戏世界编辑器 627第14章 运行时游戏性基础系统 63714.1 游戏性基础系统的组件 63714.2 各种运行时对象模型架构 64014.3 世界组块的数据格式 65714.4 游戏世界的加载和串流 66314.5 对象引用与世界查询 67014.6 实时更新游戏对象 67614.7 事件与消息泵 69014.8 脚本 70714.9 高层次的游戏流程 726第五部分 总结 727第15章 还有更多内容吗 72915.1 一些未谈及的引擎系统 72915.2 游戏性系统 730参考文献 733中文索引 737英文索引 755 参考文献 Tomas Akenine-Moller, Eric Haines, and Naty Hoffman. Real-Time Rendering (3rd Edition). Wellesley, MA: A K Peters, 2008. 中译本:《实时计算机图形学(第2版)》,普建涛译,北京大学出版社,2004. Andrei Alexandrescu. Modern C++ Design: Generic Programming and Design Patterns Applied. Resding, MA: Addison-Wesley, 2001. 中译本:《C++设计新思维:泛型编程与设计模式之应用》,侯捷/於春景译,华中科技大学出版社,2003. Grenville Armitage, Mark Claypool and Philip Branch. Networking and Online Games: Understanding and Engineering Multiplayer Internet Games. New York, NY: John Wiley and Sons, 2006. James Arvo (editor). Graphics Gems II. San Diego, CA: Academic Press, 1991. Grady Booch, Robert A. Maksimchuk, Michael W. Engel, Bobbi J. Young, Jim Conallen, and Kelli A. Houston. Object-Oriented Analysis and Design with Applications (3rd Edition). Reading, MA: Addison-Wesley, 2007. 中译本:《面向对象分析与设计(第3版)》,王海鹏/潘加宇译,电子工业出版社,2012. Mark DeLoura (editor). Game Programming Gems. Hingham, MA: Charles River Media, 2000. 中译本:《游戏编程精粹 1》, 王淑礼译,人民邮电出版社,2004. Mark DeLoura (editor). Game Programming Gems 2. Hingham, MA: Charles River Media, 2001. 中译本:《游戏编程精粹 2》,袁国忠译,人民邮电出版社,2003. Philip Dutré, Kavita Bala and Philippe Bekaert. Advanced Global Illumination (2nd Edition). Wellesley, MA: A K Peters, 2006. David H. Eberly. 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics. San Francisco, CA: Morgan Kaufmann, 2001. 国内英文版:《3D游戏引擎设计:实时计算机图形学的应用方法(第2版)》,人民邮电出版社,2009. David H. Eberly. 3D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic. San Francisco, CA: Morgan Kaufmann, 2005. David H. Eberly. Game Physics. San Francisco, CA: Morgan Kaufmann, 2003. Christer Ericson. Real-Time Collision Detection. San Francisco, CA: Morgan Kaufmann, 2005. 中译本:《实时碰撞检测算法技术》,刘天慧译,清华大学出版社,2010. Randima Fernando (editor). GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics. Reading, MA: Addison-Wesley, 2004. 中译本:《GPU精粹:实时图形编程的技术、技巧和技艺》,姚勇译,人民邮电出版社,2006. James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. Computer Graphics: Principles and Practice in C (2nd Edition). Reading, MA: Addison-Wesley, 1995. 中译本:《计算机图形学原理及实践──C语言描述》,唐泽圣/董士海/李华/吴恩华/汪国平译,机械工业出版社,2004. Grant R. Fowles and George L. Cassiday. Analytical Mechanics (7th Edition). Pacific Grove, CA: Brooks Cole, 2005. John David Funge. AI for Games and Animation: A Cognitive Modeling Approach. Wellesley, MA: A K Peters, 1999. Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissiddes. Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1994. 中译本:《设计模式:可复用面向对象软件的基础》,李英军/马晓星/蔡敏/刘建中译,机械工业出版社,2005. Andrew S. Glassner (editor). Graphics Gems I. San Francisco, CA: Morgan Kaufmann, 1990. Paul S. Heckbert (editor). Graphics Gems IV. San Diego, CA: Academic Press, 1994. Maurice Herlihy, Nir Shavit. The Art of Multiprocessor Programming. San Francisco, CA: Morgan Kaufmann, 2008. 中译本:《多处理器编程的艺术》,金海/胡侃译,机械工业出版社,2009. Roberto Ierusalimschy, Luiz Henrique de Figueiredo and Waldemar Celes. Lua 5.1 Reference Manual. Lua.org, 2006. Roberto Ierusalimschy. Programming in Lua, 2nd Edition. Lua.org, 2006. 中译本:《Lua程序设计(第2版)》,周惟迪译,电子工业出版社,2008. Isaac Victor Kerlow. The Art of 3-D Computer Animation and Imaging (2nd Edition). New York, NY: John Wiley and Sons, 2000. David Kirk (editor). Graphics Gems III. San Francisco, CA: Morgan Kaufmann, 1994. Danny Kodicek. Mathematics and Physics for Game Programmers. Hingham, MA: Charles River Media, 2005. Raph Koster. A Theory of Fun for Game Design. Phoenix, AZ: Paraglyph, 2004. 中译本:《快乐之道:游戏设计的黄金法则》,姜文斌等译,百家出版社,2005. John Lakos. Large-Scale C++ Software Design. Reading, MA: Addison-Wesley, 1995. 中译本:《大规模C++程序设计》,李师贤/明仲/曾新红/刘显明译,中国电力出版社,2003. Eric Lengyel. Mathematics for 3D Game Programming and Computer Graphics (2nd Edition). Hingham, MA: Charles River Media, 2003. Tuoc V. Luong, James S. H. Lok, David J. Taylor and Kevin Driscoll. Internationalization: Developing Software for Global Markets. New York, NY: John Wiley & Sons, 1995. Steve Maguire. Writing Solid Code: Microsoft's Techniques for Developing Bug Free C Programs. Bellevue, WA: Microsoft Press, 1993. 国内英文版:《编程精粹:编写高质量C语言代码》,人民邮电出版社,2009. Scott Meyers. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition). Reading, MA: Addison-Wesley, 2005. 中译本:《Effective C++:改善程序与设计的55个具体做法(第3版)》,侯捷译,电子工业出版社,2011. Scott Meyers. More Effective C++: 35 New Ways to Improve Your Programs and Designs. Reading, MA: Addison-Wesley, 1996. 中译本:《More Effective C++:35个改善编程与设计的有效方法(中文版)》,侯捷译,电子工业出版社,2011. Scott Meyers. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library. Reading, MA: Addison-Wesley, 2001. 中译本:《Effective STL:50条有效使用STL的经验》,潘爱民/陈铭/邹开红译,电子工业出版社,2013. Ian Millington. Game Physics Engine Development. San Francisco, CA: Morgan Kaufmann, 2007. Hubert Nguyen (editor). GPU Gems 3. Reading, MA: Addison-Wesley, 2007. 中译本:《GPU精粹3》,杨柏林/陈根浪/王聪译,清华大学出版社,2010. Alan W. Paeth (editor). Graphics Gems V. San Francisco, CA: Morgan Kaufmann, 1995. C. Michael Pilato, Ben Collins-Sussman, and Brian W. Fitzpatrick. Version Control with Subversion (2nd Edition). Sebastopol , CA: O'Reilly Media, 2008. (常被称作“The Subversion Book”,线上版本.) 国内英文版:《使用Subversion进行版本控制》,开明出版社,2009. Matt Pharr (editor). GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. Reading, MA: Addison-Wesley, 2005. 中译本:《GPU精粹2:高性能图形芯片和通用计算编程技巧》,龚敏敏译,清华大学出版社,2007. Bjarne Stroustrup. The C++ Programming Language, Special Edition (3rd Edition). Reading, MA: Addison-Wesley, 2000. 中译本《C++程序设计语言(特别版)》,裘宗燕译,机械工业出版社,2010. Dante Treglia (editor). Game Programming Gems 3. Hingham, MA: Charles River Media, 2002. 中译本:《游戏编程精粹3》,张磊译,人民邮电出版社,2003. Gino van den Bergen. Collision Detection in Interactive 3D Environments. San Francisco, CA: Morgan Kaufmann, 2003. Alan Watt. 3D Computer Graphics (3rd Edition). Reading, MA: Addison Wesley, 1999. James Whitehead II, Bryan McLemore and Matthew Orlando. World of Warcraft Programming: A Guide and Reference for Creating WoW Addons. New York, NY: John Wiley & Sons, 2008. 中译本:《魔兽世界编程宝典:World of Warcraft Addons完全参考手册》,杨柏林/张卫星/王聪译,清华大学出版社,2010. Richard Williams. The Animator's Survival Kit. London, England: Faber & Faber, 2002. 中译本:《原动画基础教程:动画人的生存手册》,邓晓娥译,中国青年出版社,2006. 勘误 第1次印册(2014年2月) P.xviii: 译注中 Wholesale Algoithms -> Wholesale Algorithms P.10: 最后一段第一行 微软的媒体播放器 -> 微软的Windows Media Player (多谢读者OpenGPU来函指正) P.15: 1.4.3节第三点 按妞 -> 按钮 (多谢读者一个小小凡人来函指正) P.40: 正文最后一行 按扭 -> 按钮 P.50: 1.7.8节第二节第一行 同是 -> 同时 (多谢读者czfdd来函指正) P.98: 代码 writeExampleStruct(Example& ex, Stream& ex) 中 Stream& ex -> Stream& stream (多谢读者Snow来函指正) P.106: 第一段中有六处 BBS -> BSS,最后一段代码的注释也有同样错误 (多谢读者trout来函指正) P.119: 译注中 软体工程 -> 软件工程 (多谢读者Snow来函指正) P.214: 正文第一段有两处 虚内存 -> 虚拟内存 (多谢读者Snow来函指正) P.216: 脚注24应标明为译注 (多谢读者Snow来函指正) P.221: 第一段代码的第二个断言应为 ASSERT(link.m_pPrev != NULL); (多谢读者Snow来函指正) P.230: 5.4.4.1节 第二段 软体 -> 软件 P.286: 脚注4应标明为译注 (多谢读者Snow来函指正) P.322: 第二段 按扭事件字 -> 按钮事件 P.349: 9.8节第二段第二行两处 部析器 -> 剖析器 (多谢读者Snow来函指正) P.738-572: 双数页页眉 参考文献 -> 中文索引 P.755-772: 双数页页眉 参考文献 -> 英文索引 P.755: kd tree项应归入K而不是Symbols 以上的错误已于第2次印册中修正。 第2次印册及之前 P.11: 第四行 细致程度 -> 层次细节 (这是level-of-detail/LOD的内地通译,多谢读者OpenGPU来函指正) P.12: 正文第一段及图1.2标题 使命之唤 -> 使命召唤 (多谢读者OpenGPU来函指正) P.12: 正文第一段 战栗时空 -> 半条命 (多谢读者OpenGPU来函指正) P.16: 第一点 表面下散射 -> 次表面散射 (多谢读者OpenGPU来函指正) P.17: 1.4.4节第五行 次文化 -> 亚文化 (此译法在内地更常用。多谢读者OpenGPU来函提示) P.22: 战栗时空 -> 半条命 P.24: 战栗时空2 -> 半条命2 P.34: 1.6.8.2节第一行 提呈 -> 提交 (这术语在本书其他地方都写作提交。多谢读者OpenGPU来函提示) P.35: 第七行 提呈 -> 提交 (这术语在本书其他地方都写作提交。多谢读者OpenGPU来函提示) P.50: 战栗时空2 -> 半条命2 P.365: 第四段第二行: 细致程度 -> 层次细节 P.441: 10.4.3.2节第三行 细致程度 -> 层次细节 P.494: sinusiod -> sinusoid (多谢读者OpenGPU来函指正) P.511: 11.10.4节第一行 谈入 -> 淡入 (多谢读者Snow来函指正) P.541: 战栗时空2 -> 半条命2 P.627: 战栗时空2 -> 半条命2 P.654: 第二行 建康值 -> 血量 (原来是改正错别字,但译者发现应改作前后统一使用的“血量”。多谢读者Snow来函指正) P.692: 第二行 内部分式 -> 内部方式 (多谢读者Snow来函指正) P.696: 14.7.6节第四行 不设实际 -> 不切实际 (多谢读者Snow来函指正) 以上的错误已于第3次印册中修正。 其他意见 P.220: 正文第一段 m_root.m_pElement 和 P.218 第一段代码中的 m_pElem 不统一。原文有此问题,但因为它们是不同的struct,暂不列作错误。 (多谢读者Snow来函提示) P.331: 8.5.8节第二段中 “反覆”较常见的写法为“反复”,但前者也是正确的,暂不列作错误。 (多谢读者Snow来函提示) P.390: 10.1.3.3节静态光照第二段中“取而代之,我们会使用一张光照纹理贴到所有受光源影响范围内的物体上。这样做能令动态物体经过光源时得到正确的光照。” 后面的一句与前句好像难以一起理解。译者认为,作者应该是指,使用同一静态光源去为静态物件生成光照纹理,以及用于动态对象的光照,能使两者的效果维持一致性。译者会考虑对译文作出改善或加入译注解译。(多谢读者店残来函查询) P.689: 第五行 并行处理世代 -> 并行处理时代 是对era较准确的翻译。 (多谢读者Snow来函提示) 本篇文章为转载内容。原文链接:https://blog.csdn.net/mypongo/article/details/38388381。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-02-12 23:04:05
327
转载
JQuery插件下载
...而创造出一种如同真实摄像机镜头聚焦与不聚焦时的视觉感受。这款插件以其轻量级的特点,巧妙地利用了CSSfilter和transition属性,不仅确保了代码的高效运行,还保证了浏览器兼容性,适用于多种环境。Refocus插件的使用方法简单直观,只需通过简单的HTML结构和JavaScript调用即可激活其特效。开发者可以在网页中添加背景图片元素,并通过插件API轻松调整模糊程度、过渡时间等参数,以满足不同场景和需求。此外,该插件还支持响应式设计,能够根据不同屏幕尺寸自动调整效果表现,确保在各种设备上都能呈现出最佳视觉体验。除了基本的镜头模糊效果,Refocus还提供了丰富的自定义选项,允许用户根据项目风格和设计要求进行个性化设置。例如,可以调整模糊边缘的透明度、选择特定区域进行局部模糊处理,甚至结合其他CSS动画效果,创造出更加复杂多变的视觉冲击力。总之,Refocus是一款强大且易于集成的jQuery插件,它不仅能够显著提升网站或应用的视觉吸引力,还能通过其灵活的配置选项,满足各种创意需求。无论是用于构建动态的用户体验,还是增强页面的视觉层次感,Refocus都是一个不可多得的工具。 点我下载 文件大小:190.02 KB 您将下载一个JQuery插件资源包,该资源包内部文件的目录结构如下: 本网站提供JQuery插件下载功能,旨在帮助广大用户在工作学习中提升效率、节约时间。 本网站的下载内容来自于互联网。如您发现任何侵犯您权益的内容,请立即告知我们,我们将迅速响应并删除相关内容。 免责声明:站内所有资源仅供个人学习研究及参考之用,严禁将这些资源应用于商业场景。 若擅自商用导致的一切后果,由使用者承担责任。
2024-09-25 20:39:15
55
本站
JQuery插件下载
...eb设计打造的高效实用工具。该插件充分利用了jQuery库的强大功能,实现了一种灵活且适应性强的侧边栏解决方案。其核心特性在于响应式设计,能够根据浏览器窗口大小自动调整布局,确保在包括IE9在内的各种现代浏览器上都能够完美展现。flyPanels的主要用途是创建可隐藏和滑动显示的侧边栏菜单,不仅限于此,它还可用于集成联系表单、搜索面板等多种组件,极大丰富了网站或应用的交互体验。通过简单的配置与API调用,开发者可以轻松实现侧边栏内容的动态切换与展示效果优化,无论是桌面端还是移动设备,都能让用户享受到流畅自然的滑动效果与便捷的操作方式。总之,flyPanels是一款轻量级但功能全面的jQuery插件,旨在提升网页界面的空间利用率及用户体验,是构建现代化、响应式网站的理想选择。 点我下载 文件大小:699.13 KB 您将下载一个JQuery插件资源包,该资源包内部文件的目录结构如下: 本网站提供JQuery插件下载功能,旨在帮助广大用户在工作学习中提升效率、节约时间。 本网站的下载内容来自于互联网。如您发现任何侵犯您权益的内容,请立即告知我们,我们将迅速响应并删除相关内容。 免责声明:站内所有资源仅供个人学习研究及参考之用,严禁将这些资源应用于商业场景。 若擅自商用导致的一切后果,由使用者承担责任。
2023-12-04 17:43:38
89
本站
JQuery插件下载
...双指触摸双击事件的实用工具类。该插件巧妙地扩展了jQuery的事件处理能力,尤其针对现代浏览器和移动设备的兼容性进行了优化。通过整合并封装click和touch相关的原生JavaScript事件,它能够无缝地在不同交互环境下检测到用户的双击行为,无论是桌面端使用鼠标还是移动端利用触摸屏幕进行操作。开发者只需简单调用该插件方法,即可便捷地为页面元素添加双击事件监听器,无需关心底层的事件差异与兼容性问题。这样极大地简化了开发流程,提升了代码复用性和维护性。例如,使用时只需在目标元素上调用dblclick()方法,就可以实现双击时触发特定的回调函数,从而增强用户体验,满足更多交互场景的需求。总之,jQuery-doubleTap是跨平台、响应式网页设计中不可或缺的一个辅助工具,有助于构建更加统一且友好的用户界面交互体验。 点我下载 文件大小:39.54 KB 您将下载一个JQuery插件资源包,该资源包内部文件的目录结构如下: 本网站提供JQuery插件下载功能,旨在帮助广大用户在工作学习中提升效率、节约时间。 本网站的下载内容来自于互联网。如您发现任何侵犯您权益的内容,请立即告知我们,我们将迅速响应并删除相关内容。 免责声明:站内所有资源仅供个人学习研究及参考之用,严禁将这些资源应用于商业场景。 若擅自商用导致的一切后果,由使用者承担责任。
2023-10-04 19:45:20
324
本站
JQuery插件下载
...jQuery开发的实用工具,旨在为网站提供一种高效且美观的签到功能。这款插件专为增强用户体验而设计,特别注重兼容性,支持IE8及以上版本浏览器,确保了更广泛的用户群体能够享受到其便捷性。该插件的核心功能包括日历显示与签到操作,用户可以通过直观的日历界面选择日期进行签到。在签到过程中,插件会自动记录并展示用户的签到次数,帮助用户轻松跟踪自己的签到进度。此外,它还提供了个性化设置选项,允许用户自定义日历样式和签到提示信息,满足不同场景下的需求。"jquery每日签到日历插件"不仅功能强大,而且易于集成。只需简单地将插件代码添加至HTML文件中,并通过JavaScript调用相关方法即可启用签到功能。对于开发者而言,这意味着可以快速地将这一实用工具融入现有项目中,无需从零开始构建签到系统。总之,"jquery每日签到日历插件"以其兼容性强、功能丰富、易于集成的特点,成为提升网站互动性和用户粘性的理想选择。无论是教育平台、企业官网还是社区论坛,均可借助此插件实现高效的日常签到管理,增强用户参与度与活跃度。 点我下载 文件大小:114.34 KB 您将下载一个JQuery插件资源包,该资源包内部文件的目录结构如下: 本网站提供JQuery插件下载功能,旨在帮助广大用户在工作学习中提升效率、节约时间。 本网站的下载内容来自于互联网。如您发现任何侵犯您权益的内容,请立即告知我们,我们将迅速响应并删除相关内容。 免责声明:站内所有资源仅供个人学习研究及参考之用,严禁将这些资源应用于商业场景。 若擅自商用导致的一切后果,由使用者承担责任。
2024-10-10 10:35:04
78
本站
JQuery插件下载
...和动感模糊效果,仿佛摄像机镜头在轻轻摇晃一般。这种设计不仅提升了用户体验,也让静态的图像瞬间变得生动有趣。此插件特别适用于需要突出展示图片内容的网页,如产品展示页面、摄影作品集或是艺术画廊等场景。其核心在于创造一种沉浸式的浏览体验,使访问者仿佛置身于画面之中,感受每一帧图像背后的故事。无论是个人博客、企业官网还是电商网站,这款插件都能帮助你快速实现专业级的视觉效果,让你的网站在众多页面中脱颖而出。此外,“jQuery超酷动感模糊图片视觉差特效”还具备高度自定义性,允许开发者根据项目需求调整模糊程度、动画速度以及响应灵敏度等参数,确保最终效果既符合创意愿景又能完美适配各种设备屏幕。总之,这不仅仅是一款插件,更是一个提升网站互动性和视觉吸引力的强大工具。 点我下载 文件大小:98.30 KB 您将下载一个JQuery插件资源包,该资源包内部文件的目录结构如下: 本网站提供JQuery插件下载功能,旨在帮助广大用户在工作学习中提升效率、节约时间。 本网站的下载内容来自于互联网。如您发现任何侵犯您权益的内容,请立即告知我们,我们将迅速响应并删除相关内容。 免责声明:站内所有资源仅供个人学习研究及参考之用,严禁将这些资源应用于商业场景。 若擅自商用导致的一切后果,由使用者承担责任。
2024-11-23 11:02:09
117
本站
Python
...atus}') 调用函数进行模拟 simulate_receipt(10) 以上代码中,我们使用了Python中的random模块生成随机的工单号和签收状态,最后调用函数进行模拟。 在实际应用中,我们可以根据数据库中的工单信息进行模拟签收,以便测试签收流程的准确性和健壮性。
2023-09-26 11:29:18
154
代码侠
Python
...据可视化在当前科研和工业界的前沿应用。例如,近期Nature杂志的一项研究中,科学家们利用Python的Matplotlib和Seaborn库成功实现了复杂物理模型的动态可视化,生动展示了黑洞合并过程中的引力波变化特性,这一突破性成果极大地推动了天文学研究的发展。 此外,随着大数据时代的到来,数据可视化在教育领域的革新同样值得关注。例如,许多在线教育平台开始整合编程与数学教学,让学生通过编写Python代码并调用Matplotlib实时绘制函数图像,使抽象的数学概念具象化,从而提高学生对函数性质、微积分等核心知识点的理解能力。同时,这种实践性的教学方法也契合了STEM教育注重培养跨学科素养和动手实践能力的趋势。 不仅如此,在商业智能分析领域,Matplotlib与其他数据分析库如Pandas和Scikit-learn结合使用,能够帮助企业决策者快速洞察复杂数据背后的规律,直观展示销售趋势、用户行为特征等关键信息,为精准营销和战略规划提供有力支持。 综上所述,掌握Python和Matplotlib进行函数图像绘制不仅有助于数学理论的学习,更是在科学研究、教育创新及商业决策等多个领域展现出了广泛而深远的应用价值。未来,随着技术的不断迭代升级,我们有理由相信,Python的数据可视化功能将在更多场景中发挥更大的作用。
2023-10-08 22:57:22
84
算法侠
Java
Python
...何使用Python和OpenCV进行正方形检测后,我们可以进一步探索计算机视觉领域中更广泛的形状识别与物体检测技术的最新进展。例如,深度学习算法在图像识别中的应用已取得了显著成果,如YOLO(You Only Look Once)系列实时对象检测系统,以及基于Mask R-CNN的实例分割技术,它们不仅可以精准地检测出图像中的各类形状,还能实现像素级别的分类。 近期,一项发表在《Pattern Recognition Letters》的研究提出了一种改进的边缘检测算法,结合卷积神经网络对图像进行预处理,有效提高了复杂背景下正方形等特定形状的检测精度。同时,Google研究人员也在不断优化其开源库TensorFlow Lite,使其能够在移动设备上高效运行复杂的形状识别模型,这对于智能家居、自动驾驶等领域具有重要意义。 此外,在实际应用场景中,正方形检测被广泛应用于二维码识别、建筑结构分析、无人机自主导航等诸多前沿技术。例如,利用深度学习进行二维码识别时,正方形定位是关键步骤之一;而在建筑BIM(建筑信息模型)技术中,自动检测墙体、门窗等正方形元素有助于提高建模效率和准确性。 总之,正方形检测作为基础的图像处理任务,其背后所依托的技术发展日新月异,并持续推动着相关行业领域的技术创新与应用拓展。对于广大开发者而言,紧跟前沿动态,深入理解并掌握这些先进的图像识别方法,将极大地提升自身在AI开发领域的竞争力。
2023-04-20 10:25:03
50
软件工程师
Python
...下文中,级联分类器是OpenCV库提供的一个工具,用于快速、高效地检测图像中的特定对象,如车辆。它通过多个阶段的弱分类器串联工作,每个阶段都对图像进行筛选,只有通过所有阶段检测的区域才会被标记为可能的目标物体。预先训练好的汽车级联分类器( cars.xml )能够识别图片中的汽车特征,从而实现车辆检测。 灰度图像(Grayscale Image) , 灰度图像是一种只包含亮度信息而没有颜色信息的图像,每个像素值代表其对应位置的灰度等级或亮度。在Python代码中,通过cv2.cvtColor函数将彩色图像转换为灰度图像,是因为在许多计算机视觉任务中,灰度图像可以简化处理过程,去除颜色带来的干扰,并且对于某些特征检测算法而言,灰度图像同样或更有效地保留了关键信息,比如在车辆检测场景下,车辆的形状和边缘特征通常与颜色无关。 预训练模型(Pre-trained Model) , 预训练模型是指已经在大规模数据集上进行了训练并取得良好性能的机器学习或深度学习模型。在本文的Python代码示例中,所使用的汽车级联分类器( cars.xml )就是一个预训练模型,意味着该模型已经学习了大量不同角度、大小、光照条件下的车辆样本数据,并能据此识别新图像中的车辆。使用预训练模型的好处在于可以大大减少从零开始训练所需的时间和计算资源,同时提高模型在目标检测任务上的准确性。在实际应用中,开发者可以直接调用这样的预训练模型,针对具体应用场景进行微调或者直接使用。
2023-12-14 13:35:31
42
键盘勇士
转载文章
...; <!-- 摄像头权限 --> <uses-permission android:name=“android.permission.CAMERA” /> <!-- 开启闪光灯权限 --> <uses-permission android:name=“android.permission.FLASHLIGHT”/> app模块配置勾选相机相册 以上三点都没问题了,打包之后的app应该就可以调用原生相机功能了。我出现无法调起来的原因是第三不,没有配置模块。 本篇文章为转载内容。原文链接:https://blog.csdn.net/jieyucx/article/details/130319786。 该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。 作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。 如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。
2023-08-01 22:36:09
32
转载
AngularJS
...ckend服务被多次调用,从而出现上述错误信息。这是因为,每当你创建一个$http实例的时候,它都会自带一个独一无二的$httpBackend小弟。想象一下,如果你在一个控制器里一口气创建了好几个$http实例,那自然而然地,就会有相应数量的$httpBackend小弟被召唤出来,各司其职。 四、如何避免这个问题 要避免这个问题,我们需要确保在一个控制器中只创建一个$http实例。在日常开发中,我们可以灵活运用工厂模式,就像变魔术一样生成一个$http实例。这样一来,你就能确保在一个控制器内部,大家共享的都是同一个$http小家伙,避免了重复创建的麻烦,使得代码更加清爽有序。 以下是一个示例: javascript angular.module('myApp', []) .factory('$httpInstance', function($http) { var instance = $http; return { get: function(url, config) { return instance.get(url, config); }, post: function(url, data, config) { return instance.post(url, data, config); } }; }); 然后,在我们的控制器中,只需要注入并使用这个工厂函数即可: javascript angular.module('myApp').controller('MyCtrl', function($scope, $httpInstance) { $httpInstance.get('/api/data') .then(function(response) { $scope.data = response.data; }); }); 五、总结 在使用AngularJS时,我们应该尽可能地遵循其设计原则,避免滥用$http服务。同时呢,咱们也得摸清楚AngularJS里的各种服务和功能点,这样才能更好地把它们用起来,让我们的开发效率蹭蹭往上涨哈! 在遇到问题时,我们应该积极寻找解决方案,并不断学习和探索。这样讲吧,只有当我们真正做到这一点,才能算得上是个名副其实的AngularJS大神,才能确保自己在这个日新月异的技术江湖中始终保持领先地位,不被淘汰。
2023-05-03 11:33:37
515
灵动之光-t
Beego
...执行自动化测试,并利用工具自动完成部分路由配置工作,从而提升整体项目质量和开发效率。 综上所述,路由设计已成为现代Web开发的核心环节之一,而像Beego这样的框架以及相关领域的最新发展,都在不断推动路由技术向更高效、智能的方向演进。对于开发者而言,紧跟行业趋势并熟练掌握各种路由机制,无疑将大大增强其在复杂项目中的应对能力和竞争力。
2023-04-05 20:57:26
552
林中小径-t
转载文章
...大规模集群环境中,利用工具如Ansible、Puppet或Chef进行配置管理时, PATH环境变量的设置往往是自动化运维脚本中的重要一环,用于确保所有节点上命令的一致性和可执行性。 深入历史长河,Unix/Linux系统的目录结构设计历经数十年的发展与沉淀,反映了其对系统安全、模块化和易维护性的重视。每个目录都有其特定用途,如/sbin存放的是系统启动和修复时所必需的二进制文件,/usr/bin则为大多数标准用户命令提供存储空间,而/usr/local/bin则是留给管理员安装本地编译应用的地方。这种清晰的层次划分与PATH环境变量结合,共同构建出一个既灵活又有序的操作系统命令执行框架。 综上所述,无论是在日常的Linux使用还是现代云计算基础设施的运维实践中,理解和合理配置PATH环境变量都显得尤为重要。它不仅有助于我们高效地运行各类命令和应用程序,还深刻影响着系统的安全性、稳定性和扩展性。
2023-02-05 18:58:56
39
转载
Tesseract
...个步骤:预处理图像、调用Tesseract进行识别、解析识别结果。 1. 预处理图像 在预处理图像的过程中,我们需要将图像转换为灰度图,然后进行二值化处理。这样可以使图像中的黑色文字更加突出,从而更容易被Tesseract识别。 python import cv2 import pytesseract 读取图像并转换为灰度图 img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE) 对图像进行二值化处理 _, thresholded = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) 2. 调用Tesseract进行识别 在调用Tesseract进行识别的过程中,我们需要指定要识别的语言,并设置一些参数,例如页面方向、字符间距等。 python text = pytesseract.image_to_string(thresholded, lang='eng', config='--psm 6') print(text) 3. 解析识别结果 在解析识别结果的过程中,我们可以使用正则表达式或其他方法来提取我们需要的信息。 python import re 使用正则表达式提取数字 pattern = r'\d+' numbers = re.findall(pattern, text) print(numbers) 四、总结 总的来说,使用Tesseract提取遮挡的文字是一个相对简单的过程。只要我们掌握了预处理图像、调用Tesseract进行识别和解析识别结果这三个步骤,就可以轻松地提取出被遮挡的文字信息。 最后,我想说,虽然Tesseract可以帮我们自动识别文字,但并不意味着它总是准确无误的。有时候,它的识别结果可能会有一些错误或者遗漏。这就意味着在实际操作时,咱们得灵活应对,做出一些适当的微调和优化,这样才能让识别的准确度噌噌往上涨。同时,咱们也得留意尊重别人的知识产权,别因为不小心用错了而惹来法律上的麻烦事儿。就像是别人的玩具不能随便拿过来玩一样,知识产权也是人家辛辛苦苦创造出来的成果,咱得好好保管和使用,别给自己招来不必要的官司纠纷。
2024-01-15 16:42:33
84
彩虹之上-t
Spark
...挑战。 总之,无论是工业界的实践案例还是学术研究的新突破,都印证了Apache Spark MLlib在当今数据科学领域的重要地位与价值。而随着技术迭代和新功能的不断加入,未来Spark MLlib将在推动人工智能和大数据分析的发展道路上扮演更加关键的角色。
2023-11-06 21:02:25
149
追梦人-t
c++
...码执行流程、记录函数调用信息等场景。为此,C++预处理器提供了一些内置的宏,如__FILE__、__LINE__和__FUNCTION__,它们分别表示当前源文件名、行号以及函数名称。今天,咱们就来聊聊一个超级实用的小技巧,就是在宏定义里头巧妙地运用__FUNCTION__这个小玩意儿,来轻松获取到当前函数的名称。这样一来,不论是调试日志还是异常处理,都能瞬间如虎添翼,让咱的工作效率嗖嗖提升! 2. __FUNCTION__的魔力揭秘 __FUNCTION__是一个神奇的预定义宏,它在编译时期会被自动替换为当前函数的名字。这个特性使得我们在编写代码时,无需手动输入函数名就能获取到准确的信息,大大提升了代码的可读性和维护性。下面让我们通过一个简单的示例来看看它是如何工作的: cpp include void myFunction() { std::cout << "Current function: " << __FUNCTION__ << std::endl; } int main() { myFunction(); return 0; } 当你运行这段代码时,输出将是:"Current function: myFunction",这就是__FUNCTION__的魅力所在。 3. 将__FUNCTION__嵌入宏定义 现在,假设我们需要创建一个自定义的日志宏,用于在调用特定函数时打印出相关信息,包括函数名。那么,如何将__FUNCTION__纳入宏定义呢? cpp define LOG(msg) do { \ std::cout << "[" << __FILE__ << ":" << __LINE__ << "] [" << __FUNCTION__ << "] " << msg << std::endl; \ } while (0) void anotherFunction() { LOG("Something happened here!"); } 在上述代码中,我们定义了一个名为LOG的宏,当调用该宏时,它会在控制台输出包含文件名、行号以及函数名的详细信息,加上你提供的消息内容。这样,在anotherFunction中使用LOG宏,不仅能够记录下函数内部的行为,而且能明确指出问题发生在哪个函数内,这对于调试和问题定位非常有帮助。 4. 深入思考与讨论 尽管__FUNCTION__为我们提供了极大的便利,但我们也需要注意一些细节。首先,由于__FUNCTION__是编译器预处理阶段解析的,所以它的值并不会随函数重载或模板实例化而改变。接着说第二个点,虽然现在大部分主流的C++编译器都很与时俱进地支持这个__FUNCTION__玩意儿,但是在某些老掉牙或者非主流的编译器上,它可能就闹脾气、不工作了。所以呢,在咱们搞跨平台开发的时候,对这个小特性可得悠着点儿用,别一不留神踩到坑里。 总的来说,熟练掌握并灵活运用__FUNCTION__这一预定义宏,无疑会使我们的C++编程之旅更加轻松愉快,同时也能显著提升代码的可读性和调试效率。当我们深入探索其背后的机制,你会发现,这不仅仅是一种技术实现,更是一种对编程艺术的理解和诠释。 结语:让__FUNCTION__成为你的调试良伴 编程是一门艺术,也是一项挑战,而善用工具则是我们应对挑战的关键。就如同在漆黑夜晚点亮一盏明灯,__FUNCTION__作为C++世界中的一个小却实用的功能,能够在复杂的程序逻辑中为你清晰地指明每一步执行路径。希望你通过认真学习和动手实践本文的内容,能够顺顺利利地把__FUNCTION__这个小家伙融入到你的编程日常里,让它成为你在解决bug、调试程序时的超级好帮手,让编程过程更加得心应手。
2023-08-01 13:07:33
557
烟雨江南_
Python
...揉碎”的。然后,通过调用explode()函数并传入相应的列名,就能自动化地完成这一转换操作。 4. 更复杂情况下的拆分行处理 当然,现实世界的数据往往更为复杂,比如可能还存在嵌套的字典或者其他混合类型的数据。在这种情况下,光靠explode()这个函数可能没法一步到位解决所有问题,不过别担心,我们可以灵活运用其他Python神器,比如json_normalize()这个好帮手,或者自定义咱们自己的解析函数,这样就能轻松应对各种意想不到的复杂状况啦! 总的来说,Python pandas在处理大数据时的灵活性和高效性令人赞叹不已,特别是其对DataFrame行转换的支持,让我们能够自如地应对各种业务需求。下次当你面对一行需要拆成多行的数据难题时,不妨试试explode()这个小魔术师,它或许会让你大吃一惊!
2023-05-09 09:02:34
234
山涧溪流_
Tesseract
...预处理技术及插件,如OpenCV库中的高级图像变换模块,可用于精确地进行图像旋转、裁剪等操作,从而为Tesseract提供更加优质且适合识别的图像输入。 因此,在实际应用Tesseract或其他OCR工具时,建议开发者关注最新的科研动态和技术更新,结合前沿的图像预处理技术,以进一步提升识别效率和准确性。同时,积极参与开源社区交流,借鉴并分享实践经验,共同推动OCR技术的发展。
2023-05-04 09:09:33
80
红尘漫步
Tomcat
...的必要元素。 - 使用工具辅助:利用IDE(如IntelliJ IDEA或Eclipse)自带的XML语法检查功能,能有效发现并提示潜在的格式错误。 - 补全缺失元素:例如对于上述Servlet映射缺失的情况,补充对应的servlet-mapping元素即可。 0 5. 总结与思考 在Java Web应用部署至Tomcat的过程中,遇到web.xml文件配置错误时,我们需要像侦探一样细致入微地排查每一个细节,同时结合理论知识和实践操作来解决问题。只有这样,才能确保我们的应用程序能够顺利启航,稳健运行。请记住,无论技术多么复杂,往往一个小细节就可能成为决定成败的关键,而这也是编程的魅力所在——严谨而又充满挑战!
2023-08-20 15:01:52
345
醉卧沙场
站内搜索
用于搜索本网站内部文章,支持栏目切换。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
tar -czvf archive.tar.gz dir
- 创建一个gzip压缩的tar归档文件。
推荐内容
推荐本栏目内的其它文章,看看还有哪些文章让你感兴趣。
2023-04-28
2023-08-09
2023-06-18
2023-04-14
2023-02-18
2023-04-17
2024-01-11
2023-10-03
2023-09-09
2023-06-13
2023-08-07
2023-03-11
历史内容
快速导航到对应月份的历史文章列表。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"