- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,我最近开始研究 three.js,我正在尝试使用轨道控件创建一个包含一些 3d 球体和基本旋转的场景。下面是我当前的代码,我面临的问题是,当我旋转相机时,球体看起来像是被压扁了/2d,我不知道我做错了什么。
这是一个jsFiddle
var camera, scene, renderer, controls, particles = [];
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
var generateParticles = function() {
var geometry, material, particle;
for ( var zpos= -10000; zpos < 10000; zpos+=200 ) {
geometry = new THREE.SphereGeometry( 6, 32, 32 );
//material = new THREE.MeshLambertMaterial({color: 0xD43001});
material = new THREE.MeshPhongMaterial({
color: 0x333333,
ambient: 0xffffff,
specular: 0xffffff,
shininess: 50
});
// material = new THREE.MeshNormalMaterial();
particle = new THREE.Mesh( geometry, material );
particle.geometry.dynamic = true;
particle.geometry.verticesNeedUpdate = true;
//particle.geometry.normalsNeedUpdate = true;
particle.position.x = Math.random() * 2000 - 1000;
particle.position.y = Math.random() * 2000 - 1000;
particle.position.z = zpos;
particle.scale.x = particle.scale.y = 10;
scene.add( particle );
particles.push(particle);
}
}
var generateLight = function() {
var ambient = new THREE.AmbientLight( 0x111111);
scene.add( ambient );
var color = new THREE.Color("rgb(255,0,0)");
var pointLightRed = new THREE.PointLight(color, 1, 2000);
pointLightRed.position.set( 0, 0, -2000);
scene.add( pointLightRed );
var color = new THREE.Color("rgb(0,255,0)");
var pointLightGreen = new THREE.PointLight(color, 1, 2000);
pointLightGreen.position.set( 0, 0, 2000);
scene.add( pointLightGreen );
var directionalLight1 = new THREE.DirectionalLight( 0xffffff, 5, 10000 );
directionalLight1.position.set( 0, 2000, 0 );
scene.add( directionalLight1 );
}
var init = function() {
// camera
camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 5000;
// scene
scene = new THREE.Scene();
scene.add( camera );
// renderer
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.autoClear = false;
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.rotateSpeed = 0.5;
controls.minDistance = 500;
controls.maxDistance = 6000;
document.body.appendChild( renderer.domElement );
// add particles
generateParticles();
// add light
generateLight();
// start rendering
render();
}
var update = function() {
for(var i=0; i<particles.length; i++) {
particles[i].position.z += 20;
if ( particles[i].position.z > 10000 ) particles[i].position.z = -10000;
}
}
var render = function() {
requestAnimationFrame( render );
update();
controls.update();
renderer.render(scene, camera);
}
window.onload = function(){
init();
}
最佳答案
particle.scale.x = particle.scale.y = particle.scale.z = 10;
关于javascript - Three.js 3d sphere looks 2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791583/
docs声明为 Azure Sphere 开发设备需要 A PC running Windows 10 Anniversary Update or later 和 Visual Studio 2017
我正在构建一个地球仪(球体几何形状),其中包含一组在地理映射上预定义的位置并绘制为点(球体几何形状)。我想通过沿 y 轴旋转地球仪来聚焦(将一个位置移动到另一个位置)这些位置。我尝试了以下代码,似乎不
是否可以在 JavaFX 中创建类似于 Google map 中的 photoshpere 的光球?如果是,如何? 最佳答案 答案是肯定的,您可以在 JavaFX 中创建光球。 至于方法,有一个基于
您好,我有一个带有 2d 球体索引的集合 wayCollection.createIndex(new BasicDBObject("poly", "2dsphere")); 当我尝试插入某个对象时出现
我正在寻找一种数学变换,以将2D平面[0,1]x[0,1]上的点变换到单位球面上。 最常见的投影是通过将u和v解释为球坐标的角度来进行纬度-经度映射(将u映射为[0,2PI]和v映射为[-PI/2,
我正在尝试使用 MVC C# 制作我的 Photo Sphere 照片库。有什么方法可以测试图像是否是真实的球体图像?图书馆什么的?我目前有一个上传按钮,并将图像的路径保存在数据库中。但我想验证该图像
我正在尝试在 GLSL 中实现球体射线相交,包括几何和解析解。我在解决 geom one 时遇到了麻烦,它应该与我如何返回 true 或 false 有关: bool hitSphere(Ray ra
我正在尝试为我正在编写的 Java3D 程序中的所有 3d 对象创建一个通用抽象父类(super class)。我需要它通过通用接口(interface)向所有 3D 对象添加共享功能,例如移动对象。
在 jmonkey 中,我看到了他们的第一个教程,出于好奇,它正在通过鼠标移动移动一个盒子,至于玩这个新玩具,我尝试使用鼠标移动来移动球体。由于功能几乎相同,我用 Sphere 替换了 Box。 pu
我正在为我在下面发布的代码寻求帮助。这是一个问题,我必须制作一个球体类和另一个类来测试它。我几乎什么都明白了,但唯一让我难受的是设置新的直径和获得新的体积。当我设置一个新直径时,直径很容易改变,但是当
好的,所以我喜欢使用 SPOJ 来练习编程和开发算法。不过,我总是对这些问题有疑问。很多时候,当我的代码清楚地正确回答问题时,我会收到“错误答案”消息。如果有人能告诉我是否有任何问题或为什么 SPOJ
我想知道如何在长方体中创建球体。这个长方体 (50,50,50) 包含有很多点,我想要的只是获取球体(半径 = 2)内的点位置及其值。 非常感谢任何想法/建议/代码/信息.. 最佳答案 创建一个以其中
我需要制作一种算法来检测两个球体何时发生碰撞,以及碰撞后瞬间发生的方向。 假设,想象一下,当您在台球比赛中打开 table 时,所有的球都“随机”地相互碰撞。 所以,在开始自己编写代码之前,我在想是否
本文整理了Java中io.sphere.sdk.zones.ZoneDraft类的一些代码示例,展示了ZoneDraft类的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
本文整理了Java中io.sphere.sdk.shippingmethods.ZoneRate类的一些代码示例,展示了ZoneRate类的具体用法。这些代码示例主要来源于Github/Stackov
本文整理了Java中io.sphere.sdk.zones.Zone类的一些代码示例,展示了Zone类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从
本文整理了Java中io.sphere.sdk.zones.ZoneDraftBuilder类的一些代码示例,展示了ZoneDraftBuilder类的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中io.sphere.sdk.shippingmethods.ZoneRateDraftBuilder类的一些代码示例,展示了ZoneRateDraftBuilder类的具体用法。这
一、ShardingSphere简单介绍 出现背景:当数据库数据巨大时,数据库读写性能将变得很低,为了解决此问题,设计时,可以将数据进行分别存储于不同数据库、不同表中,以降低单表量数量大问题;Sha
在之前文章《02、Sharding-Sphere 实战:水平分表,实现分表写入读取》中,我们介绍了数据库的水平分表配置,在文章中只介绍了最简单的行表达式分表配置方式,但往往在实际中我们的业务场景单一的
我是一名优秀的程序员,十分优秀!