3D engine developed from 0 (a): opening

Introduction

Hello everyone, this series takes you on Web 3D programming Tour ~

This series is a real type, starting from 0 to lead the reader to write "good architecture, good scalability, minimum feature set (MVP)" 3D engine.

This series of material from our product: Wonder-WebGL 3D engine and editors throughout the development process.

And I "with functional programming, from 0 to develop 3D engine and editor" series Bowen difference:

  • This series is its rewritten version

  • This series is a real type, but it is the type of lessons learned

  • This series of write-only engine, and the engine both write and write Editor

Why write-only engine in this series?

  • Because most people are more concerned with engine

  • In order to speed up the writing speed, more space needs to be omitted editor

This series features

1. completely from zero, emphasizing combat

2. Keep it simple, achieve only minimal functions , with emphasis on infrastructure , expansion

3. totally and completely functional programming using

Now the field of 3D data using functional programming is small, mainstream or object-oriented.
I used to use an object-oriented, but since I came into contact with functional programming, you embrace it.
We hope that through this series, showing the charm of functional programming to readers, expand the reader's vision and thinking.

Give you any benefits?

1. taught you how to develop 3D engine from 0
to learn functional programming and its application in the field of 3D 2.
3. Learn basic 3D programming functions to achieve, such as textures, lighting, models, etc.
4. learning engine design and architecture such as Data Oriented, multithreading

This series of technology selection

  • Use Reason language (functional programming language, can be compiled into Javascript)

See related evaluation of Reason:
How to evaluate reasonml?
How to evaluate Facebook launched programming language Reason?

  • Used as the underlying API WebGL 1

Featured engine

  • Functional Programming

  • Use "functional reactive programming" (the FRP) Asynchronous

  • Multi-threaded rendering

  • Data Oriented

  • Contract inspection

  • Based on job scalable rendering pipeline

  • Load Flow

Engine supports operating environment

Focusing on desktop browser (multi-threaded rendering engine and other functions can only be open on the desktop side):

  • Chrome
  • Firefox
  • 360 browser (v10.0 and above)
  • qq browser (v10.4 and above)

It can also support mobile client browser:

  • Micro-channel browser (Andrews 4.4 and above, ios 8 and above)

Content planning

This series is divided into six parts:

Part I: preparation (not begin to write)

main content:

  • Preparation prior knowledge
  • Setup the development environment
  • Set up a test environment

Part II: base (not begin to write)

main content:

  • Learning functional programming

  • Learning functional reactive programming

  • Learn Reason

Part III: build prototype (not begin to write)

main content:

  • Write smallest 3D program

  • Refines engine

  • Improved engine architecture

Part IV: increased functionality (not begin to write)

main content:

  • Increase basic functions

  • Join Scene Graph

Part V: Enhanced Scalability (not begin to write)

main content:

  • Join Script Component

  • Adding custom materials

  • Addition of other possible extensions, such as expansion ui

Part VI: Application (not begin to write)

main content:

  • By extending engine supports, adding practical functionality required (such as picking, etc.)

  • Several complete realization of 3D applications

Reference material

Wonder-WebGL 3D engine and editor
"with functional programming, from 0 to develop 3D engine and editors' blog series

Guess you like

Origin www.cnblogs.com/chaogex/p/12133853.html