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