热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3D编程模式:开篇

大家好~现在开始新的系列文章:3D编程模式系列本系列会介绍从我的实际开发经验中抽象提炼出来的编程模式,大家可直接应用它们到3D引擎开发、编辑器开发等领域中系列文章目录:3D编程模式

大家好~现在开始新的系列文章:3D编程模式系列

本系列会介绍从我的实际开发经验中抽象提炼出来的编程模式,大家可直接应用它们到3D引擎开发、编辑器开发等领域中

系列文章目录:

3D编程模式:介绍设计原则

3D编程模式:依赖隔离模式


目录



  • 个人相关经验

  • 为什么需要编程模式?

  • 编程模式如何服务于设计?

  • 适用领域

  • 技术栈

  • 本系列特色

  • 目标读者

  • 能给读者带来什么收益?


个人相关经验

我已经在Web3D领域有1万小时的开发经验,主要工作包括3D引擎开发、编辑器开发等。

我至少完全重写了5次3D引擎,完全重写了2次编辑器,commit至少7000次,有效代码行数至少20万以上。

我在长期的开发过程中,不断地改进架构设计,发现并应用了很多新的编程模式。这些编程模式是基于函数式编程范式的。

在本系列中,我会与大家分享基于我的实践而发现和应用的编程模式,感谢大家~


为什么需要编程模式?

这个世界处于不断的变化中,需求也在不断的变化

为了应对需求的变化,减少变化影响的范围,我们需要进行设计

在不断地改进设计的过程中,可以发现一些通用的模式。将其抽象和提炼出来,便于沟通交流;将其固化为一套框架,可以减少重复代码


编程模式如何服务于设计?

我们通过下面的几个维度来进行架构设计:

以抽象、封装为基本方法

以高内聚、低耦合为评判标准

以设计原则为指导思想

以编程模式为实现框架

所以编程模式主要应用于架构设计的实现中。如果说设计原则属于战略层面,那么编程模式就属于战术层面。


适用领域

本系列提出的3D编程模式主要适用于:

3D引擎开发

编辑器及工具开发

当然也可以应用在其它领域,如富应用开发等。


技术栈

  • 使用Typescript作为具体案例的编程语言

  • 使用WebGL和WebGPU作为具体案例的图形API


本系列特色

  • 使用函数式编程范式

  • 每个模式相互独立,用户可以选择性的阅读,降低学习成本

  • 模式是从实际开发经验中提炼而来,实战性强


目标读者

  • 3D引擎开发者

  • 编辑器及工具开发者

  • 游戏开发者

  • 函数式编程的爱好者


能给读者带来什么收益?

  • 学习函数式编程范式的编程模式

  • 学习3D引擎和编辑器的编程模式

  • 学习编程模式的综合应用和最佳实践


欢迎来到Wonder~


扫码加入我的QQ群:


扫码加入免费知识星球-YYC的Web3D旅程:



推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Android图形架构学习笔记(待修改)
    以下简单总结来自Android官网,稍作总结:https:source.android.google.cndevicesgraphics概览Andr ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 程序分析与优化9附录XLA的缓冲区指派
    本章是系列文章的案例学习,不属于正篇,主要介绍了TensorFlow引入的XLA的优化算法。XLA也有很多局限性,XLA更多的是进行合并,但有时候如果参数特别多的场景下,也需要进行 ... [详细]
  • 第四单元和课程总结:简单的架构设计意识
    一、第四单元架构设计总结第一次作业由于需要按名查找类图模型,于是建立"Class"类进行管理由于方法具有参数导致类中存在二级结构 ... [详细]
  • TS 类型体操:图解一个复杂高级类型
    ts,类型,体操,图解,一 ... [详细]
author-avatar
木木的亦尘_283
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有