Skip to content

nintymiles/three.cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

three.cpp

a clone cpp graphics library inspired by three.js.

Basic Running Environment

I pick google's angle as a direct replacement for WebGL which three.js depends on,hence, I can concentrate on computer graphics itself.

Now I first run it on MacOS Apple Silicon and Windows desktop with angle by libEGL + libGLESv2.

Three.cpp 基于three.js的cpp跨平台本地渲染框架

有感于three.js基于图形学的知识在web上几乎从头开始搭建了一个优秀的图形学框架,并且提供了无数的精彩例子。three.pp,基于google angle实现,以three.js为蓝本,使用cpp语言学习实现跨平台的本地渲染框架,目前已经实现的功能:

  • 完成渲染引擎部分功能的移植
  • 基于MacOS Apple Silicon平台的运行
  • 基于win64 系统的运行
  • 实现了2个线段绘制例子
  • 迁移了obj/mtl loader,实现了obj/mtl解析加载功能,并实现一个例子
  • 实现了一个buffer geometry,无顶点数据绘制例子
  • 实现多点光源动态实例
  • 实现基于光源的物理真实(PBR)渲染例子

Demos

Name Desc
Lines
Lines-Sphere Lines-Sphere demo
Lines-Dashed Lines-Dashed demo
Loader
Obj-Mtl-Loading Loader-Obj-Mtl demo
Buffer Geometry
Buffer-geometry-attributes-none Buffer-geometry-attributes-none demo
Lights
Lights-pointLights Lights-pointLights
Lights-physical Lights-physical
Materials
Materials-Channels Materials-Channels
Materials-Cubemap Materials-Channels
Materials-Materials Materials-Channels
Materials-Materials Materials-Channels
Shaders
Shader Shader_demo
Shader_Lava Shader_lava
Custom_attributes Custom_attributes

About

a clone cpp graphics library inspired by three.js.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published