美文网首页
WebGL 基础

WebGL 基础

作者: shirleyR | 来源:发表于2017-04-15 23:22 被阅读0次

webgl 场景创建

  • 渲染
    • render (scene, camera)
    • setViewport()
   var renderer = new THREE.WebGLRenderer({
          antialias : true });
  //  WebGLRenderer ( parameters )
  /**
      parameters :
        1. empty
        2. canvas 画板  eg. document.getElementById("divCanvas");
        3. context
        4. antialias 反锯齿
        5. stencil 
         ... ... 
  **/
  // 两种创建方式
  //  1. 
    var render = new THREE.WebGLRenderer({
       canvas: document.getElementById("mainCanvas")
    })
  // 2.
    var render = new THREE.WebGLRenderer();
    render.setSize(width, height);
    render.setClearColor(0x000000);
    document.body.appendChild(renderer.domElement);

  • 场景
var scene = new THREE.Scene();
  • 相机
    camera.position
    camera.rotaion
    • 正视投影
var camera = new THREE.OrthographicCamera(left, right, top, bottom, near, far)
来源ituring网站
  • fov :角度
  • width/height : 视窗比
  • near 离相机最近的距离
  • far 最远距离
   var camera = new THREE.PerspectiveCamera( fov, width/height, near , far);
  camera.position.z = 10;

  • 物体
    物体定义分为材质和几何特征
    • 立方体
var  geometry = new THREE.BoxGeometry(width, height, depth);
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00});
var cube = new THREE.Mesh(geometry, material);

WebGL 基本数据结构

  • Vector
  • Matrix3
  • Matrix4
  • ....

技巧

个人在学习的过程中发现对相机的投影情况不能准确找到,因此绘制了坐标

 function drawAxes(scene){
                // x-axis
                var xGeo = new THREE.Geometry();
                xGeo.vertices.push(new THREE.Vector3(0, 0, 0));
                xGeo.vertices.push(new THREE.Vector3(13, 0, 0));
                var xMat = new THREE.LineBasicMaterial({color: 0xff0000});
                var xAxis = new THREE.Line(xGeo, xMat);
                scene.add(xAxis);

                // y-axis

                var yGeo = new THREE.Geometry();
                yGeo.vertices.push(new THREE.Vector3(0, 0, 0));
                yGeo.vertices.push(new THREE.Vector3(0, 13, 0));
                var yMat = new THREE.LineBasicMaterial({color: 0x00ff00});
                var yAxis = new THREE.Line(yGeo, yMat);
                scene.add(yAxis);

                // z-axis

                var zGeo = new THREE.Geometry();
                zGeo.vertices.push(new THREE.Vector3(0, 0, 0));
                zGeo.vertices.push(new THREE.Vector3(0, 0, 13));
                var zMat = new THREE.LineBasicMaterial({
                    color: 0x0000ff
                });
                var zAxis = new THREE.Line(zGeo, zMat);
                scene.add(zAxis);
            }

相关文章

  • webgl

    WebGL 理论基础[https://webglfundamentals.org/webgl/lessons/zh...

  • WebGL 基础

    webgl 场景创建 渲染render (scene, camera)setViewport() 场景 相机cam...

  • webgl基础进阶

    上一章介绍了webgl的入门级基础,这次打算讲一点稍微深一点层次的基础,当然是基础了,在写本文的时候,本人也...

  • webgl 基础入门

    你既然来到这里了,肯定是在看web前端构建3d相关内容了。本人也是一个菜鸟,所以在学习webgl相关内容时整...

  • WebGL基础介绍

    谈起WebGL可能有一些人比较陌生,实际上WebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript...

  • WebGL基础学习

    step1:create vertexDatastep2:create buffer and load verte...

  • webgl基础图形

    WebGL的工作是绘制图形图像,了解WebGL的图形是至关重要的。 一、点 在WebGL中点是一个正方形,用一个三...

  • webgl基础:顶点到片元的联动

    继前期分享了 初入webgl 的一些内容之后,相信大家已经对webgl有了一个初步的认识,今天再来分享一些基础内容...

  • webgl基础:着色器基础

    前言:(十分重要) 上节文章中,跟大家分享了一下如何入门 webgl 并在画布上绘制一个点。 诚然,我们看到的流程...

  • WebGL漫游之旅(一)

    原文链接:WebGL漫游之旅(一) 一、WebGL基本概念 WebGL (Web Graphics Library...

网友评论

      本文标题:WebGL 基础

      本文链接:https://www.haomeiwen.com/subject/jbeoattx.html