Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (15)

Лучшие ответы пользователя

Все ответы (16)
  • Как в Three.js отрисовать изображение по верх всего?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    Для этого нужно создать еще одну камеру которую мы не будем двигать:
    otherCamera = new THREE.PerspectiveCamera( fov, width / height, near, far );
    её необходимо направить прямо на объект.
    Создаем еще одну сцену:
    var otherScene = new THREE.Scene();
    добавить на эту сцену объект, который должен быть всегда сверху:
    otherScene.add(objAlwaysOnTop);
    на объект можно натянуть текстуру с картинкой.
    Далее необходимо вставить в место, где происходит рендеринг это:
    enderer.clear();  // отчищаем все буферы
    renderer.render(mainScene, camera); // рендерим главную сцену
    renderer.clear(false, true, false); // отчищаем только буфер глубины
    renderer.render(otherScene, otherCamera);// рендерим статичную сцену
    Все!

    Есть еще способ который гораздо проще:
    var texture = new THREE.ImageUtils.loadTexture( 'images/pic.jpg' );
    	texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
    	texture.repeat.set( 0.5, 0.5 );
    	var spriteMaterial = new THREE.SpriteMaterial( {map: texture, useScreenCoordinates: true, alignment: THREE.SpriteAlignment.topLeft } );
    	sprite = new THREE.Sprite( spriteMaterial );
    	sprite.scale.set(100,100,1.0);
    	sprite.position.set( 0, 0, -1 );
    	mainScene.add( sprite );


    от 30.08.2014 последний способ для последних версий Three.js к сожалению уже не актуален.
    Ответ написан
    Комментировать
  • Как убрать меридианы и параллели в сфере на three.js?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    уважаемый Fraideron, я осознал вашу проблему, в полном объеме, и настоятельно рекомендую, ...sicMaterial({map:texture_earth, overdrav:tru... исправить на overdraw и будет все, как просили, исчезнет wireframe - эффект. Так же можно отказаться от CanvasRenderer в пользу WebGLRenderer
    Ответ написан
    3 комментария
  • Где найти больше текстовой информации по three.js?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    из исходников https://github.com/mrdoob/three.js
    можно расписать структуру, её особенности, ведь эта библиотека-абстракция над WebGL тем и хороша, что достаточна проста для освоения, а спектр задач которые она способна решить просто поражает, ведь создавая приложения по средствам three.js мы используем аппаратные своего компьютера, а это в свою очередь открывает большие вычислительные возможности(шейдерные программы)

    threejs.org
    threejs.org/docs
    threejs.org/examples
    stemkoski.github.io/Three.js
    Ответ написан
    2 комментария
  • Как сделать видимый конус света из прожектора (по типу того, которым вызывают Бетмена)?

    sozercanie_kosmosa
    @sozercanie_kosmosa
    Elfrey,
    тут как раз используется то

    в этом примере по полной используются шейдеры, если я вас правильно понял,
    то в самом простом варианте будет достаточно нарисовать конус света выходящего из прожектора по средствам заранее созданного объекта типа конус с наложенным на него материалом желтого цвета с полупрозрачностью, без всяких шейдеров например так:

    geomLightCone = new THREE.CylinderGeometry( 0, 30, 100, 20, 4 );
    material = new THREE.MeshBasicMaterial( {
    				color: 0xFFFF00, 
    				opacity: 0.5, 
    				visible: true} );
    
    meshLight = new THREE.Mesh(geomLightCone, material);
    scene.add(meshLight);


    ...так же необходимо постоянно отслеживать положение луча в зависимости от положения прожектора.

    ps возможно я ошибаюсь, но отслеживать положение луча не обязательно, достаточно лишь в момент инициализации объектов на сцене поместить его в нужное место, а затем
    вместо:
    scene.add(meshLight);
    добавить к объекту "прожектор", объекта "луч света" так:
    projectorMesh.add(meshLight);
    Ответ написан
    1 комментарий
  • JS как вставить элемент в середину типизированного массива?

    sozercanie_kosmosa
    @sozercanie_kosmosa Автор вопроса
    вопрос решен.
    normalArray = Array.apply( [], typedArray );
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (17)