小编gma*_*man的帖子

git fetch远程分支和远程ref

如何在不影响当前分支的情况下获取远程分支并更新该分支的git的本地引用?例如,如果我这样做

$ git pull origin master
Run Code Online (Sandbox Code Playgroud)

origin/master合并到我当前的分支中.这也行不通

$ git fetch origin master
Run Code Online (Sandbox Code Playgroud)

那时我检查一下

$ git branch -r -v
origin/HEAD   -> origin/master
origin/master 7cf6ec5 test 02
Run Code Online (Sandbox Code Playgroud)

origin/master ref"7cf6ec5 test 02"落后了.真正的起源/主人是"XXXXXX测试03". git fetch只将更改拉入FETCH_HEAD,它没有上传本地origin/master ref.更新该ref的步骤是什么?

注意:

$ git fetch origin
Run Code Online (Sandbox Code Playgroud)

将获得所有远程引用并更新它们但不幸的是(a)很多混乱.(我不希望别人的30-50个随机分支知道有人不想要我的)和(b)因为分支在原点上删除了那些引用在下次我没有被本地删除git fetch origin这意味着路径结束愚蠢的.

问题是,如何只获取一个分支并在本地更新其ref?

git

8
推荐指数
2
解决办法
6981
查看次数

如何将函数地址转换为符号

假设我有一个这样的程序

// print-addresses.cpp
#include <stdio.h>

void foo() { }

void bar() { }

void moo() { }

int main(int argc, const char** argv) {
  printf("%p\n", foo);
  printf("%p\n", bar);
  printf("%p\n", moo);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

它会打印一些数字

013510F0
013510A0
01351109
Run Code Online (Sandbox Code Playgroud)

如何将这些数字转换回正确的符号?实际上,我希望能够做到这一点

print-addresses > address.txt
addresses-to-symbols < address.txt
Run Code Online (Sandbox Code Playgroud)

并打印出来

foo
bar
moo
Run Code Online (Sandbox Code Playgroud)

我知道这与调试接口访问SDK有关,但我并不完全清楚如何从地址转到符号.

windows debugging symbols debug-symbols

8
推荐指数
1
解决办法
1442
查看次数

通过OBJMTLLoader加载对象的三个.js多个材质

我有一个模型的".obj"和".mtl"文件,我正在加载它OBJMTLLoader.".mtl"指定要应用于模型的纹理,并且three.js加载模型并使用应用的纹理渲染它就好了.

但这就是事情.

一旦加载了一个对象,我想在其上应用另一个纹理.这是因为第一纹理表示对象的表面材质.第二个纹理是一个绘图,我想定位在模型上的特定位置.

我的问题是:如何将第二个纹理应用到已加载(和纹理化)的对象上

我看到three.js创建了一个实例THREE.Object3D,并且该实例具有带有一个实例的"children"数组THREE.Mesh.

当我尝试将纹理应用于该网格(mesh.material.map = texture)时,我失去了初始纹理.

我查看了关于应用多个纹理和JSONLoader但没有找到答案的问题.

我也尝试过使用new THREE.MeshFaceMaterial( materials )(如本答案所示),但没有成功.

更新:

我试过@WestLangley建议使用多材质对象,但仍然无法在另一个上面渲染一个材质.

我做了这个简单的演示,改编自three.js OBJLoader - http://dl.dropboxusercontent.com/u/822184/webgl_multiple_texture/index.html

THREE.SceneUtils.createMultiMaterialObject按照建议使用它,传递克隆从.obj加载的主网格的几何体.我也给它2个纹理 - 一个用于整个表面,另一个用于模型的前表面.

但这不起作用.我添加了2个复选框,用于切换相应材料的"可见"属性.你可以看到材料存在,但我看不到第二个下面的第一个.

加载/渲染的关键如下:

var texture = THREE.ImageUtils.loadTexture('fabric.jpg');
var texture2 = THREE.ImageUtils.loadTexture('table.jpg');

texture2.offset.set(-0.65, -2.5);
texture2.repeat.set(4, 4);

var loader = new THREE.OBJLoader();
loader.addEventListener( 'load', function ( event ) {

  var mainMesh = event.content.children[0].children[0];

  multiMaterialObject = THREE.SceneUtils.createMultiMaterialObject( 
    mainMesh.geometry.clone(), [
      new THREE.MeshLambertMaterial({ map: texture2 …
Run Code Online (Sandbox Code Playgroud)

javascript textures mesh three.js

8
推荐指数
1
解决办法
2万
查看次数

在Three.js中的MeshPhongMaterial或MeshLambertMaterial上投射阴影

我觉得我在这里缺少一些简单的东西.

我使用了@WestLangley的JSFiddle,它演示了如何将阴影从一个物体投射到一个平面上.

当飞机充满颜色时,一切都按预期工作:

var groundMaterial = new THREE.MeshLambertMaterial({
  color: 0xFF0000
});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后我改为使用纹理代替:

var groundMaterial = new THREE.MeshLambertMaterial({
  // color: 0xFF0000,
  map: texture
});
Run Code Online (Sandbox Code Playgroud)

突然,阴影消失了:

在此输入图像描述

这发生在MeshPhongMaterialMeshLambertMaterial.

请注意,相机位置和阴影配置均未更改.一切都保持不变,但阴影消失了.

纹理应该被"告知"接收光还是其他东西?

在r61,r66,r67上测试过.

textures shadow three.js

8
推荐指数
1
解决办法
2797
查看次数

有什么方法可以阻止/禁用浏览器中的CTRL + [key]快捷方式?

我知道很多人会因为这个问题而生气但是......

我有一个使用WebGL和Pointer Lock API的游戏.由于很多游戏在CTRL上"蹲伏"的性质,我想知道是否有任何可能的方法来阻止CTRL + S和CTRL + W等浏览器快捷方式......

目前,我不得不严厉禁止控件在其中包含任何CTRL键.我已经将'crouch'设置为C,这也很常见,但我也有关于制作MMORPG风格的游戏的想法,你会有几个能力的动作条,由于CTRL不可行,很多组合是不可能的.

html javascript html5

8
推荐指数
1
解决办法
2万
查看次数

如何在WebGL中导出SolidWorks / eDrawings文件?

随着SolidWorks 2016的启动,DassaultSystèmes推广了一个新的Web门户,该门户可将Edrawings模型嵌入到网页中:3dcontentcentral.com。他们的Web 3D查看器使用WebGL在浏览器窗口中显示模型(您可以在此处找到一个实时示例)。此外,还可以将iframe与查看器一起嵌入,以将其嵌入到另一个网页中,如下所示:

<iframe scrolling='no' frameborder='0' allowfullscreen='true'
src='http://www.3dcontentcentral.com/external-site-embed.aspx?format=3D&catalogid=364&modelid=1254&width=250&height=250&edraw=true'
name='PreviewFrame3D' id='PreviewFrame3D' width='400' height='355'>
</iframe>
<br/>
<a href='http://www.3dcontentcentral.com/download-model.aspx?catalogid=364&id=1217'>
Download</a>
Run Code Online (Sandbox Code Playgroud)

最后的结果是一样的东西如下:

在此处输入图片说明

全屏示例

因此,有没有机会以相同的方式导出3D模型(零件)并嵌入为WebGL,而无需上传到3D Content Central网站?如果有任何帮助,我也可以访问Edrawings / SolidWorks SDK(2015)。

3d html5 solidworks

8
推荐指数
1
解决办法
6159
查看次数

如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

给定一个Http.IncomingMessage由响应请求而创建的,http(s).Server检测请求是否是 http 与 https 的正确/推荐方法是什么?

一些我不知道的随机想法是否正确

node.js

8
推荐指数
1
解决办法
2334
查看次数

使用鼠标悬停在三个js中更改网格的颜色

我已经整理了一个使用jsonloader和three.js显示多个网格的WebGL脚本,现在我想添加MouseOver和onClick事件.第一个是当鼠标悬停在网格上时简单地改变网格的颜色:

function render() {
  requestAnimationFrame(render);    
  mesh.rotation.z += 0.090;    
  raycaster.setFromCamera(mouse, camera);    
  var intersects = raycaster.intersectObjects(scene.children);  

  for (var i = 0; i < intersects.length; i++) {    
    intersects[i].object.material.color.set(0xff0000);    
  }    
  renderer.render(scene, camera);

}
Run Code Online (Sandbox Code Playgroud)

上面的渲染功能允许我将任何网格的颜色悬停在它上面.我已经尝试了几个if/else变体尝试并且只有在鼠标悬停在网格上时才能使用此效果,但我无法使其工作 - 它只是保持红色.任何人都可以建议我如何修改我的脚本?

谢谢.

javascript three.js raycasting

8
推荐指数
2
解决办法
1万
查看次数

Three.js - 良好的相机 z 距离,可以看到盒子的全貌

我用 Three.js 显示一个大小为 700x700 的场景。在这个场景中,我生成了一个随机位置在 -250 到 250 之间的粒子系统(对于 x,y,z),所以盒子的大小是 500x500。

为了计算相机的正确距离(为了适应盒子的全貌),我试过:

    <script>

if ( ! Detector.webgl ) Detector.addGetWebGLMessage();

var container, stats;
var camera, controls, scene, renderer;
var cross;
var width = 700, height = 700;

init();
animate();

function init() {

  camera = new THREE.PerspectiveCamera( 60, width / height, 1, 1000 );
  // tan(pi/6) = 1/sqrt(3) = height/2 / distance_z
  camera.position.z = 250*Math.sqrt(3);

      ...

 for(var p = 0; p < particleCount; p++) {

    // create a particle with random
    // …
Run Code Online (Sandbox Code Playgroud)

javascript perspectivecamera three.js

7
推荐指数
1
解决办法
4269
查看次数

如何从类型化数组中的二进制数据创建PNG blob?

我有一些恰好是PNG的二进制数据.我想将它变成一个blob,获取blob的URL并将其显示为图像(或者其他任何地方图像URL都有效,如css等...)

这是我尝试过的.首先,我制作了一个带有黄色"F"图像的小型8x8红色正方形,并使用pngcrush将其缩小

你可以看到原来的91字节图像显示得很好(它只有8x8像素)

91字节png

然后,对于这个示例,我将其转换为JavaScript数组,我将其复制到Uint8Array中,我从中创建一个blob和blob中的URL,将其分配给图像但图像不显示.

var data = new Uint8Array([
  137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,8,0,0,
  0,8,8,2,0,0,0,75,109,41,220,0,0,0,34,73,68,65,84,8,215,99,120,
  173,168,135,21,49,0,241,255,15,90,104,8,33,129,83,7,97,163,136,
  214,129,93,2,43,2,0,181,31,90,179,225,252,176,37,0,0,0,0,73,69,
  78,68,174,66,96,130]);
var blob = new Blob(data, { type: "image/png" });
var url = URL.createObjectURL(blob);
var img = new Image();
img.src = url;
console.log("data length: " + data.length);
document.body.appendChild(img);
Run Code Online (Sandbox Code Playgroud)
img { width: 100px; height: 100px; }
Run Code Online (Sandbox Code Playgroud)

如何才能将其显示为blob网址?

javascript url html5 image

7
推荐指数
1
解决办法
8612
查看次数