我试图在Three.js中编写一个小程序,显示两个球体,一个在另一个内部.球2的半径应该在0.5和1.5之间振荡,而球1的半径总是1.0.每个球体都是透明的(不透明度:0.5),因此可以看到较大球体中包含的较小球体.当然,随着球体2的半径变化,"较小"和"较大"的作用会发生变化.
现在的问题是Three.js使我在程序中定义的第一个球体透明,而不是第二个球体.如果我定义第一个sphere1然后它变得透明但是sphere2完全不透明.如果我定义第一个sphere2,那么这是透明的.将它们添加到场景的顺序不起作用.
我在下面包含一个显示正在发生的事情的最小程序(没有动画).在当前状态下,只有sphere1可见且不透明.如果我在sphere2之前定义sphere1,那么sphere1变为透明但sphere2不再透明.将sphere2的半径更改为1.2将隐藏sphere1.
有没有办法让两个球体都透明?
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
camera.position.set(0, 0, 3);
camera.lookAt(new THREE.Vector3(0, 0, 0));
scene.add(camera);
var ambient = new THREE.AmbientLight( 0x555555 );
scene.add(ambient);
var light = new THREE.DirectionalLight( 0xffffff );
light.position = camera.position;
scene.add(light);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// Definition 2
var geometry2 = new THREE.SphereGeometry(0.8,32,24);
var material2 = new THREE.MeshLambertMaterial({color: 0x0000ff, transparent: true, opacity: 0.5});
var sphere2 = new THREE.Mesh(geometry2, material2);
// Definition 1
var …我有一个git存储库.我在Emacs中编辑存储库中的文件,我想在Emacs中使用ediff来查看访问该文件的缓冲区中的文本与之前提交的同一文件之间的差异(默认情况下是最后一次提交).这可能/容易吗?
Mac上的Python的os.path.getctime(以及一般的Unix下)没有给出创建文件的日期,而是"最后一次更改的时间"(至少根据文档).另一方面,在Finder中,我可以看到真正的文件创建时间,因此这些信息由HFS +保存.
您对如何在Python程序中获取Mac上的文件创建时间有什么建议吗?
我正在将iPhone应用程序从OpenGL ES 1.1转换为ES 2.0.应用程序绘制到EAGLView,因为它是由Apple提供的标准OpenGL ES应用程序模板中定义的.
ES 1.1代码在模拟器和iPhone上运行良好.新的ES 2.0代码在模拟器上工作正常但在iPhone 3GS上我得到了工件(例如来自其他应用程序的缩放视图片段),据我所知,这表明我的程序对帧缓冲区感到困惑.我发现这很奇怪,因为与ES 1.1相比,我没有对帧缓冲区处理逻辑进行任何更改.
我在下面的部分代码中包含了绘图,虽然我没有看到这一点,因为它在模拟器中工作正常:
GLfloat data[600000];
// initialize data
glClearColor(0.f, 0.f, 0.f, 0.f);
glClear(GL_COLOR_BUFFER_BIT); 
glUseProgram(program);
glUniformMatrix4fv(uniforms[UNIFORM_PROJECTION_MATRIX], 1, GL_FALSE, projection_matrix);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEW_MATRIX], 1, GL_FALSE, modelview_matrix);
glVertexAttribPointer(ATTRIBUTE_POSITION, 3, GL_FLOAT, GL_FALSE, 0, data);
glEnableVertexAttribArray(ATTRIBUTE_POSITION);
glDrawArrays(GL_POINTS, 0, 200000);
glFlush();
我正在尝试设置一个过滤器,以便在结帐时它会向我的文件注入一些git相关信息,并在提交时将删除此信息.我已经确认,当我提交文件时,它已被正确清理.此外,如果我删除文件,然后检查文件是否适当污迹.
我的问题如下.如果我对文件进行更改并提交更改,则不会运行涂抹过滤器.这是预期的行为吗?有没有办法在提交时运行涂抹过滤器?(也许是通过提交后立即进行结账?)