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