webgl canvas实现三维城市效果代码
代码语言:html
所属分类:三维
代码描述:webgl canvas实现三维城市效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
html, body {
overflow: hidden;
touch-action: none;
position: absolute;
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background: #000;
}
canvas {
position: absolute;
width: 100%;
height: 100%;
user-select: none;
background: #000;
cursor: pointer;
}
</style>
</head>
<body >
<canvas></canvas>
<script>
</script>
<script type="module">
import {
WebGL,
Mesh,
Shader,
FrameBuffer } from
"//repo.bfw.wiki/bfwrepo/js/webgl-helpers.js";
{
const [canvas, gl] = WebGL("canvas");
gl.enable(gl.DEPTH_TEST);
gl.enable(gl.CULL_FACE);
console.clear();
const matrices = [];
const shapes = [];
const stack = [];
const rule = {};
let ry = 0;
let ex = 0;
let ey = 0;
let ez = 0;
let nVertices = 0;
let mustResize = true;
let renderingTexture = null;
let camDist = 0;
let lightPosition = null;
let ambientColor = null;
let specularColor = null;
let diffuseColor = null;
let fog = null;
let fogColor = null;
let fov = 60;
let pitch = 30;
let background = null;
let startRule = "start";
let transformScene = null;
let seed = Math.round(Date.now() / 86400000) - 18000;
let minSize = 0;
let maxDepth = 10000000;
let minComplexity = 0;
let maxPitch = 0;
let cables = false;
let zoomAcceleration = 0.0025;
let speedRotation = 0.08;
const transforms = {
x(m, v) {
m[12] += m[0] * v;
m[13] += m[1] * v;
m[14] += m[2] * v;
m[15] += m[3] * v;
},
y(m, v) {
m[12] += m[4] * v;
m[13] += m[5] * v;
m[14] += m[6] * v;
m[15] += m[7] * v;
},
z(m, v) {
m[12] += m[8] * v;
m[13] += m[9] * v;
m[14] += m[10] * v;
m[15] += m[11] * v;
},
s(m, v.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0