我开始使用THREE.js,我正在尝试绘制一个带有纹理的矩形,由单个光源照亮.我认为这很简单(为简洁起见省略了HTML):
function loadScene() {
var world = document.getElementById('world'),
WIDTH = 1200,
HEIGHT = 500,
VIEW_ANGLE = 45,
ASPECT = WIDTH / HEIGHT,
NEAR = 0.1,
FAR = 10000,
renderer = new THREE.WebGLRenderer(),
camera = new THREE.Camera(VIEW_ANGLE, ASPECT, NEAR, FAR),
scene = new THREE.Scene(),
texture = THREE.ImageUtils.loadTexture('crate.gif'),
material = new THREE.MeshBasicMaterial({map: texture}),
// material = new THREE.MeshPhongMaterial({color: 0xCC0000});
geometry = new THREE.PlaneGeometry(100, 100),
mesh = new THREE.Mesh(geometry, material),
pointLight = new THREE.PointLight(0xFFFFFF);
camera.position.z = 200;
renderer.setSize(WIDTH, HEIGHT);
scene.addChild(mesh);
world.appendChild(renderer.domElement);
pointLight.position.x = …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,我一直试图让Three.js纹理化.我遇到的问题是我的浏览器阻止纹理加载,这是通过遵循这里的说明解决的.
无论如何,我正在为我的一个班级制作一个太空导航游戏,演示如何在太空中航行太空船.所以,我渲染了一堆行星,地球就是其中之一.我在下面列出了我的地球渲染图片.它看起来没问题,但我想做的是通过在地球周围添加"氛围"使其看起来更逼真.
我环顾四周,并且发现了一些看起来非常整洁的创意来处理发光,但我不认为它们适用于我的情况.
这里的代码将地球添加到我的场景中(这是我从Three.js教程获得的代码的修改版本):
function addEarth(x,y){
var sphereMaterial =
new THREE.MeshLambertMaterial({
//color: 0x0000ff,
map: earthTexture
});
// set up the sphere vars
var radius = 75;
segments = 16;
rings = 16;
// create a new mesh with
// sphere geometry - we will cover
// the sphereMaterial next!
earth = new THREE.Mesh(
new THREE.SphereGeometry(
radius,
segments,
rings),
sphereMaterial);
earth.position.x = x;
earth.position.y = y;
// add the sphere to the scene
scene.add(earth);
}
Run Code Online (Sandbox Code Playgroud)

来自three.js的正常轨道控制对于圆形物体是完美的,但对于长物体不好(特别是当变焦关闭时),我正在寻找解决方案来解决这个问题.
用文字描述很难,请从Google查看此webgl示例(放大最大值以查看):https://www.google.com/o3d/shopping/viewer/360? q = erMBhK8fu3C&o3ds = use_3d

我正在考虑基于默认OrbitControls的使用,从相机到边界框连续投射光线并保持恒定距离,但问题是相机总是在看物体的中心,不像上面的例子(凸轮只在到达时旋转)对象的角落).
任何想法将不胜感激.
这是我的目录,如下所示:
index.html中的内容:
<html>
<body>
<script src="data.js" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我不希望用户data.js通过直接链接看到我的内容,例如www.sample.com/data.js
但data.js仍然允许来自index.html
我在.htaccess中尝试过:
deny from all
Run Code Online (Sandbox Code Playgroud)
要么
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg|css|js|png)$ - [F]
Run Code Online (Sandbox Code Playgroud)
但是它也总是阻止从index.html访问。
谢谢。
我正在使用OrbitControls.js制作一个Three.js项目,但我意识到我无法使用OrbitControls选择(突出显示)任何文本.
这里的示例链接:http://threejs.org/examples/#misc_controls_orbit (在示例的顶部尝试选择文本"轨道控制示例",我们不能这样做)
那么,如何使用OrbitControl选择(突出显示)文本?
(或者我每次想要复制文本时都必须禁用控制?)
谢谢.
我是lua脚本的新手,我开始创建并使用此脚本将文本写入Lua文件:
A = "Hello"
local file = io.open ('test.txt',"w")
file:write(A)
file:close()
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
:3尝试索引本地'文件'(零值)
这有什么不对?
P/s:我用CHDK在相机上运行这个lua.
我试图像这个例子那样使方向流动和气流:https://animagraffs.com/supercharger-vs-turbo/
我可以看到只有纹理在移动
我不明白如何使空气流向管道和表面上的正确方向.
任何想法都非常感谢!
(我想他们可能会使用一些uv展开技术结合动画纹理的UV偏移)
即使我已经拥有,模型也始终显示在FlatShading中computeVertexNormals.为了优化目的,模型被导出而没有正常,由JsonLoader加载到3JS中,并转换为BufferGeometry.
材料已经存在SmoothShading.请参阅此jsFiddle以获得更好的演示:http://jsfiddle.net/2w9Lkjbm/6/