# claygl **Repository Path**: vev_hj/claygl ## Basic Information - **Project Name**: claygl - **Description**: ClayGL 是一个 WebGL 图形库,用于构建可伸缩的 Web3D 应用程序 - **Primary Language**: JavaScript - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/claygl - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2022-06-06 - **Last Updated**: 2022-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

ClayGL

[![NPM Version](https://img.shields.io/npm/v/claygl.svg)](https://github.com/pissang/claygl) [![Circle CI](https://circleci.com/gh/pissang/claygl.svg?style=shield)](https://circleci.com/gh/pissang/claygl) ClayGL is a WebGL graphic library for building scalable Web3D applications. It's easy to use, configurable for high-quality graphics. Benefit from the modularity and tree shaking, it can be scaled down to 22k(gzipped) for a basic 3D application. #### [Download](https://github.com/pissang/claygl/releases) #### [API](http://docs.claygl.xyz/api) #### [Examples](http://examples.claygl.xyz) ## Projects [ECharts GL](https://github.com/ecomfe/echarts-gl) [Clay Viewer](https://github.com/pissang/clay-viewer) [DOTA2 Hero Viewer](https://github.com/pissang/dota2hero) [Paper Cut Art Generator](https://github.com/pissang/papercut-box-art) [Little Big City](https://github.com/pissang/little-big-city) ## Quick Start ##### Create a rotating cube ```html ``` #### Minimum bundle example This example is about 22k(gzipped) after bundled by webpack 4.0. It draws a triangle on the screen. ```js import { Renderer, GeometryBase, Shader, Material } from 'claygl'; const vsCode = ` attribute vec3 position: POSITION; void main() { gl_Position = vec4(position, 1.0); } `; const fsCode = ` void main() { gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0); } `; const renderer = new Renderer({ canvas: document.getElementById('main') }); renderer.resize(400, 400); const geometry = new GeometryBase(); geometry.createAttribute('position', 'float', 3); // Add triangle vertices to position attribute. geometry.attributes.position.fromArray([ [-0.5, -0.5, 0], [0.5, -0.5, 0], [0, 0.5, 0] ]); const material = new Material({ shader: new Shader(vsCode, fsCode) }); renderer.renderPass([ { geometry, material } ]); ``` ### FBX to glTF2.0 Converter [Get it](https://github.com/pissang/claygl/blob/master/tools/fbx2gltf.py) Needs [python3.3](https://www.python.org/download/releases/3.3.0/) and [FBX SDK 2018.1.1](http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=26416130). ``` usage: fbx2gltf.py [-h] [-e EXCLUDE] [-t TIMERANGE] [-o OUTPUT] [-f FRAMERATE] [-p POSE] [-q] [-b] file FBX to glTF converter positional arguments: file optional arguments: -h, --help show this help message and exit -e EXCLUDE, --exclude EXCLUDE Data excluded. Can be: scene,animation -t TIMERANGE, --timerange TIMERANGE Export animation time, in format 'startSecond,endSecond' -o OUTPUT, --output OUTPUT Ouput glTF file path -f FRAMERATE, --framerate FRAMERATE Animation frame per second -p POSE, --pose POSE Start pose time -q, --quantize Quantize accessors with WEB3D_quantized_attributes extension -b, --binary Export glTF-binary --beautify Beautify json output. --noflipv If not flip v in texcoord. ``` Input: + FBX + COLLADA + OBJ Output: + Scene hierarchy + Mesh and camera + PBR material + Texture + Skin + Animation