我正在通过Linux终端使用nodejs REPL.我有很大一部分代码要粘贴到nodejs中.但是,粘贴代码会导致终端在一段时间内无响应.这是因为REPL使用表达式的每一行吐出以下文本:
Array Boolean Date Error EvalError
Function Infinity JSON Math NaN
Number Object RangeError ReferenceError RegExp
String SyntaxError TypeError URIError decodeURI
decodeURIComponent encodeURI encodeURIComponent eval isFinite
isNaN parseFloat parseInt undefined
ArrayBuffer Buffer DataView FMM Float32Array
Float64Array GLOBAL Int16Array Int32Array Int8Array
Uint16Array Uint32Array Uint8Array Uint8ClampedArray _
assert buffer child_process clearImmediate clearInterval
clearTimeout cluster console crypto dgram
dns domain escape events fs
global http https module net
os path process punycode querystring
readline require root setImmediate setInterval
setTimeout stream string_decoder tls …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种有效的方法来处理javascript中的大型矢量列表.我创建了一套性能测试,使用不同的数据结构执行就地标量向量乘法:
AoS实施:
var vectors = [];
//
var vector;
for (var i = 0, li=vectors.length; i < li; ++i) {
vector = vectors[i];
vector.x = 2 * vector.x;
vector.y = 2 * vector.y;
vector.z = 2 * vector.z;
}
Run Code Online (Sandbox Code Playgroud)
SoA实施:
var x = new Float32Array(N);
var y = new Float32Array(N);
var z = new Float32Array(N);
for (var i = 0, li=x.length; i < li; ++i) {
x[i] = 2 * x[i];
y[i] = 2 * y[i];
z[i] = …Run Code Online (Sandbox Code Playgroud) 我正在研究一种板块构造模拟器,它使用改变后的洪水填充算法来检测大陆.算法大致相同.唯一的区别是它适用于顶点而不是像素.
我一直在努力改善这种行为的质量 - 我想看看当它忽略具有两个邻居或更少的大陆地壳的像素/顶点时它的表现如何.是否存在支持此功能的泛洪填充算法的现有变体?
我的(有点简化)代码如下:
var group = [];
var stack = [initialVertex];
while(stack.length > 0){
var next = stack.pop();
if (group.indexOf(next) != -1 && isContinental(next)){
group.push(next);
stack = stack.concat(getNeighbors(next));
}
}
return group
Run Code Online (Sandbox Code Playgroud) 从着色器的three.js教程中,我们了解到我们可以更新ShaderMaterial的统一值:
var attributes = {
displacement: {
type: 'f', // a float
value: [] // an empty array
}
};
var uniforms = {
amplitude: {
type: 'f', // a float
value: 1
}
};
var vShader = $('#vertexshader');
var fShader = $('#fragmentshader');
// create the final material
var shaderMaterial =
new THREE.MeshShaderMaterial({
uniforms: uniforms,
attributes: attributes,
vertexShader: vShader.text(),
fragmentShader: fShader.text()
});
...
var frame = 0;
function update() {
// update the amplitude based on …Run Code Online (Sandbox Code Playgroud) 在这里你会找到一个jsFiddle改编的问题.
我想创建一个3d Web应用程序,用户可以在其中选择本地计算机上的图像文件:
<input id="userImage" type="file"/>
Run Code Online (Sandbox Code Playgroud)
选择文件后,图像将作为参数加载到THREE.ShaderMaterial对象中.将glsl着色器应用于图像,并将结果呈现给浏览器中的容器:
$("#userImage").change(function(){
var texture = THREE.ImageUtils.loadTexture( $("#userImage").val() );
texture.image.crossOrigin = "anonymous";
shader.uniforms.input.value = texture;
shader.uniforms.input.needsUpdate = true;
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致以下错误:
Cross-origin image load denied by Cross-Origin Resource Sharing policy.
Run Code Online (Sandbox Code Playgroud)
我知道尝试访问WebGL中的跨源资源存在问题,但同时我看到WebGL的官方规范中提供了以下解决方法:
以下ECMAScript示例演示了如何为来自其他域的映像发出CORS请求.无需任何凭据即cookie即可从服务器获取映像.
var gl = ...;
var image = new Image();
// The onload handler should be set to a function which uploads the HTMLImageElement
// using texImage2D or texSubImage2D.
image.onload = ...;
image.crossOrigin = "anonymous";
image.src = "http://other-domain.com/image.jpg";
Run Code Online (Sandbox Code Playgroud)
在我的代码中,您看到我已经为图像对象指定了crossOrigin参数,但我仍然收到错误.我的例子与规范有何不同?甚至可以在WebGL中使用本地资源,就像在另一台服务器上托管资源一样?除此之外,还有其他工作要考虑完成任务吗?
我的情况:
我正在使用Fortran.有时,我想选择一段代码中的所有内容.我很容易选择块的开始/结束元素,因为它看起来像这样:
SUBROUTINE FOO(BAR)
IF (BAR .GT. 1) THEN
//DO SOMETHING
ENDIF
RETURN
END SUBROUTINE FOO
Run Code Online (Sandbox Code Playgroud)
将光标移动到SUBROUTINE,按Ctrl+D两次,完成.SUBROUTINE关键字的两个实例都会突出显示.
但现在我想在关键字之间选择所有内容SUBROUTINE.我想要一个选择,包括从第一个开始SUBROUTINE到第二个结束的所有内容SUBROUTINE.我更喜欢用语言无关的方式来完成,因为我可以想象这样的情况可能会出现在其他情境中,而且我不想为只在Fortran中工作的东西而累积肌肉记忆.
在sublime中是否有一个命令可以选择多个选择器选择的起始位置和结束位置之间出现的所有文本?
我经常尝试加入不同的点以在OpenScad 中绘制直线。但我找不到任何方法来划清界限。但是我可以绘制确定的形状,如立方体、球体、圆柱体等......所以请帮助我指导进入正确的程序编码,通过连接不同的点来绘制直线。
假设我正在研究WebGL中的一个问题,该问题需要从大纹理(例如,2048x2048)中检索值,并且像素完美精确.
到目前为止,一切对我来说都很有用.我可以将大纹理传递给片段着色器,片段着色器会将其转换为渲染目标,我甚至可以将渲染目标作为另一个渲染过程的输入,始终检索我需要的精确像素.
但现在让我们说我想混淆一下.我想创建一个渲染过程,它返回一个纹理,为我开始使用的大纹理中的每个像素存储一对uv坐标.作为最简单的用例,让我们说:
precision highp float;
precision highp sampler2D;
varying vec2 vUv;
void main() {
gl_FragColor = vec4(vUv, 0, 1);
}
Run Code Online (Sandbox Code Playgroud)
使用第一个渲染过程返回的uv坐标,我想从我开始使用的大纹理中访问一个像素:
precision highp float;
precision highp sampler2D;
uniform sampler2D firstPass;
uniform sampler2D largeTexture;
varying vec2 vUv;
void main() {
vec2 uv = texture2D(firstPass, vUv);
gl_FragColor = texture2D(largeTexture, uv);
}
Run Code Online (Sandbox Code Playgroud)
然而,这并不能以足够的精度工作.我经常从相邻像素获得颜色,而不是我想要解决的像素.从一些修补我发现这只适用于尺寸高达~512x512的纹理.
您将注意到我已在这些示例中指定使用高精度浮点数和采样器2D.这是关于唯一容易想到的解决方案,但这仍然没有解决我的问题.我知道我总是可以依靠寻找具有较低精度的相对坐标系的像素,但我希望为了简单起见,我仍然可以使用uv进行寻址.
javascript ×4
three.js ×3
webgl ×3
glsl ×2
opengl-es ×2
performance ×2
3d ×1
3d-modelling ×1
algorithm ×1
cors ×1
flood-fill ×1
node.js ×1
openjscad ×1
openscad ×1
shader ×1
sublimetext ×1
sublimetext3 ×1