18.6.1 • Published 7 years ago

vuethree v18.6.1

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

VueThree

A Vue wrapper for THREE.

demo

Try it out!

dependencies

setup

npm

npm install vuethree

ES module

Register the components globally.

import Vue from 'vue';
import VueThree from 'vuethree';

Vue.use(VueThree);

or

Register the components in the scope of another instance.

import VueThree from 'vuethree';

export default {
  // ...
  components: {
    [VueThree.Renderer.name]: VueThree.Renderer,
    [VueThree.Object.name]: VueThree.Object,
    [VueThree.Scene.name]: VueThree.Scene,
  },
};

browser

<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/three"></script>
<script src="https://unpkg.com/vuethree"></script>

If Vue is detected, the components will be registered automatically.

usage

<vue-three-renderer clear-color="#00ff00">
  <vue-three-scene>
    <vue-three-fog color="#ff0000"/>
    <vue-three-perspective-camera
      :fov="75"
      :position="cameraPosition"
      :quaternion="cameraQuaternion"
    />
    <component
      v-for="threeObject in threeObjects"
      :key="threeObject.key"
      :is="threeObject.component"
      v-bind="threeObject.props"
    />
    <vue-three-point-light
      :decay="2"
      :position="[50, 0, 0]"
    />
  </vue-three-scene>
</vue-three-renderer>

Create custom Vue THREE components.

let MySphere = {
  mixins: [VueThree.Object],

  props: {
    color: {},
  },

  computed: {
    object() {
      return new THREE.Mesh(
        new THREE.SphereBufferGeometry(1/2, 24, 24),
        new THREE.MeshStandardMaterial({metalness: 2/3, roughness: 2/3}),
      );
    },
  },

  created() {
    this.$watch(function() {
      this.object.material.emissive.set(this.color);
    });
  },

  methods: {
    dispose(object) {
      object.geometry.dispose();
      object.material.dispose();
    },
  },
};

components

Renderer

properties

propertytypedefault
antialiasBooleantrue
alphaBooleanfalse
clearColor[Number, String]0x000000
clearAlphaNumber1
preserveDrawingBufferBooleanfalse

Object

properties

propertytypedefault
position[Array, Object][0, 0, 0]
quaternion[Array, Object][0, 0, 0, 1]
scale[Number, Array, Object][1, 1, 1]
nameString''
userDatauserData{}

Scene

Fog

name

vue-three-fog

properties

propertytypedefault
color[Number, String]0x000000
nearNumber1
farNumber1000

PerspectiveCamera

properties

propertytypedefault
fovNumber50
nearNumber1/10
farNumber2000

PointLight

properties

propertytypedefault
color[Number, String]0xffffff
intensityNumber1
distanceNumber0
decayNumber1
18.6.1

7 years ago

18.1.17

7 years ago

18.1.16

7 years ago

17.12.13

8 years ago

17.12.7

8 years ago

17.11.29

8 years ago

17.11.28

8 years ago

17.11.20

8 years ago

17.11.15

8 years ago

17.11.4

8 years ago

17.10.26

8 years ago

17.10.19

8 years ago

17.10.18

8 years ago

17.10.17

8 years ago