Показано с 1 по 4 из 4

Тема: Как добавить 3D модели в игру?

  1. #1

    По умолчанию Как добавить 3D модели в игру?

    Привет, я начал делать игру и потребовалось добавить 3D модели. Оказалось, что это очень сложно.
    Создавать простые геометрические фигуры оказалось, очень просто. А с моделями много возни.
    Если, кто делал, подкиньте информации.

    Screenshot_1.jpg

    Спасибо. <3
    Последний раз редактировалось Unnamed17; 22.06.2017 в 12:09.

  2. #2

    По умолчанию

    Вот код:
    PluginManager.setup($plugins);
    window.onload = function () {
    SceneManager.run(Scene_Boot);

    var scene = new THREE.Scene();
    var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    var renderer = new THREE.WebGLRenderer({ alpha: true } );
    renderer.setSize(window.innerWidth, window.innerHeight);

    renderer.setClearColor( 0x000000, 0 ); // the default

    renderer.domElement.style.zIndex = 10;
    renderer.domElement.style.position = "absolute";
    renderer.domElement.style.left = 0;
    renderer.domElement.style.top = 0;

    // style="position: absolute; left: 0; top: 0;

    document.body.appendChild(renderer.domElement);

    var geometry = new THREE.BoxGeometry( 1, 1, 1 ); // Создать кубик 1 на один на один
    // var material = new THREE.MeshPhongMaterial( { color: 0x6F6CC5, specular: 0x555555, shininess: 30 } );

    // var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
    var material = new THREE.MeshLambertMaterial( { color: 0xffffff, overdraw: 0.5 } ); // Сделать куби цветным
    var cube = new THREE.Mesh( geometry, material ); // Сделать что-то с кубиком
    scene.add( cube ); // Очень важно дабавить кубик, чтобы было его видно, очень важна

    // var light = new THREE.AmbientLight( 0x404040 ); // soft white light
    // scene.add( light );

    scene.add( new THREE.AmbientLight( Math.random() * 0x202020 ) );

    var directionalLight = new THREE.DirectionalLight( Math.random() * 0xffffff );
    directionalLight.position.x = Math.random() - 0.5;
    directionalLight.position.y = Math.random() - 0.5;
    directionalLight.position.z = Math.random() - 0.5;
    directionalLight.position.normalize();
    scene.add( directionalLight );

    var pointLight = new THREE.PointLight( 0xffffff, 1 );
    scene.add( pointLight );

    camera.position.z = 5; // Как-то сдвинуть экран, чтобы было хорошо, с -5 всё плохо

    function render() {
    requestAnimationFrame( render );

    cube.rotation.x += 0.1; // Двигать кубик
    cube.rotation.y += 0.1;

    renderer.render( scene, camera );
    }

    render();
    };
    Последний раз редактировалось Unnamed17; 21.06.2017 в 04:05.

  3. #3
    Познающий Аватар для Naarassusi
    Информация о пользователе
    Регистрация
    29.03.2015
    Адрес
    Дома
    Сообщений
    409
    Записей в дневнике
    5
    Репутация: 2 Добавить или отнять репутацию

  4. #4
    Познающий Аватар для Deme
    Информация о пользователе
    Регистрация
    16.05.2014
    Сообщений
    317
    Записей в дневнике
    16
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Unnamed17 Посмотреть сообщение
    Привет, я начил делать игру пра сталкера и захатале добавить 3D мадели. У меня получился зелёный кубик.
    Но как добавить модели и ещё анемацию? Вада тоже работает, могу паказать.

    Я смог загрузить 3D кубик, но как загрузить модели, ищё мне нужна анимацея.

    Screenshot_1.jpg

    Спасиба.
    Вы используете библиотеку Three.js. Насколько я знаю, здешние форумчане не использовали её в своих играх (поправьте, если я ошибаюсь?), поэтому Вы первопроходец в этом направлении. Поздравляю! Однако это значит и то, что если у Вас появятся вопросы про Three.js, тут Вам на них могут не ответить: лучше задавать их на форумах, посвящённых этой библиотеке, или на StackOverflow.

    Я с Three.js не работал, однако вижу, что в ней есть класс BufferGeometryLoader — он позволяет загрузить геометрию объектов в собственном формате на основе JSON. Пример формата можно посмотреть здесь: https://github.com/mrdoob/three.js/w...metry-format-4. Вероятно, Вам нужно будет сначала конвертировать модель из своего формата в формат геометрии Three.js. К сожалению, я не работал с Three.js, поэтому не могу рассказать Вам подробнее, как это делается.

    Цитата Сообщение от Naarassusi Посмотреть сообщение
    Судя по коду, Unnamed17 уже использует Three.js, которая схожа по функциональности с Babylon.js.
    Последний раз редактировалось Deme; 21.06.2017 в 08:34.
    «quī legis ista, tuam reprehendō, mea laudās // omnia, stultitiam; / nihil, invidiam» (Jōhannis Audoenī)
    'Ты, кто читает это: я порицаю, если ты хвалишь у меня // всё, твою глупость; / если ничего — твою злобу.' (Джон Оуэн)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Как добавить 3D модели в игру?