小编mja*_*sz1的帖子

NgModule与组件

所以我现在正在学习angular2并阅读关于模块的ngbook2.模块包含组件,但也可以使用其公共组件导入不同的模块.

问题是:模块组件的范围是什么(在这个意义范围内,作为应用程序的一部分,而不是内部变量的范围).模块是整个应用程序还是只是某些部分,如标题,包含其组件?

常用的惯例是什么?

angular

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

三个环境中的环境遮挡

我刚刚使用three.js将我的第一个布料模拟从opengl移植到webgl (可以在这里看到).

事情是它看起来有点沉闷,我想添加(因为我希望我能从我的计算机图形类中正确记住)环境遮挡,以使布料在与球碰撞时很好地遮挡.我对着色器的了解现在处于非常低的水平,所以我非常感谢有关这个主题的任何资源有助于three.js开发(教程,书名等),因为谷歌对它一无所知.

也许有些提示如何应用环境遮挡?

所以,由于WestLangley,阴影得到了修复!现在回到其他问题:关于三个着色器的任何有用资源,或者只是一般的hlsl?

javascript shader three.js

10
推荐指数
1
解决办法
9270
查看次数

从着色器读取数据

我正在尝试学习如何利用三个和webgl的gpu可能性,所以我只是分析代码来获得一些模式,方法是如何完成的,我需要一些代码解释.

我找到了这个例子:一百万个粒子,这似乎是最简单的一个,涉及着色器和吐出的计算.

因此,根据我的想法: - 粒子的速度和位置数据保存在纹理中,传递给着色器以在那里执行计算,然后将它们返回更新

  • 粒子是在平面上随机创建的,不超过纹理大小?

    for(var i = 0; i <1000000; i ++){

    particles.vertices.push(new THREE.Vector3((i % texSize)/texSize,
    
    Run Code Online (Sandbox Code Playgroud)

    Math.floor(i/texSize)/ texSize,0)); }

  • 我没有看到任何粒子位置更新?如何从着色器检索数据并更新每个粒子?

    pick()只通过鼠标位置来计算粒子运动的方向?

  • 为什么有2个缓冲区?和8(4对片段和矢量)着色器?只有用于计算速度和位置的那个还不够吗?

  • 着色器如何更新纹理?我只是看到它没有写入它的阅读?

提前感谢您的任何解释!

javascript shader canvas three.js

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

将侦听器附加到多个子元素

我试图摆脱我页面中的jquery,并将某些功能重写为纯js。有2个班级工作清单,其中包含几个li元素。每个li元素都应具有单击动作,以向其添加“活动”类。在jQuery中,它非常简单:

$('.work li').on('click', function () {
            var that = $(this);
            that.parent().find('li.active').removeClass('active');
            $(this).addClass('active');
        })
Run Code Online (Sandbox Code Playgroud)

在纯js中是否有更好的解决方案,而不是使用嵌套循环来做类似的事情:

    var lists = document.getElementsByClassName('work');
    for(var i=0; i<lists.length; i++){
       var children = lists[i].querySelectorAll('li');
       for(var j=0; j<children.length;j++){
        children[j].addEventListener();
       }
    }
Run Code Online (Sandbox Code Playgroud)

javascript listener

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

使用 THREE.Renderpass 进行多场景渲染

我有以下问题:尝试使用 RenderPass 渲染多个场景以进行后处理。

现在有2个场景:

1)地形+云

2) 文字层

两个场景都在渲染,但文本层被混合到地形中(通常如果它们在同一个场景中渲染,它应该像这样)。奇怪的是:我可以通过比地形高得多的云看到文字(地形和云在同一场景中进行测试)您可以看到云层上方的文字,但它与地形融为一体

您可以看到云层上方的文字,但它与地形融为一体

为了呈现它,我使用以下代码:

    @renderPass = new THREE.RenderPass( @scene, @camera )
    @renderPass.renderToScreen = true
    @renderPass.clear = false
    @renderPass.clearDepth = true

    @textPass = new THREE.RenderPass( @textScene, @camera )
    @textPass.renderToScreen = true
    @textPass.clear = false
    @textPass.clearDepth = true

@composer = new THREE.EffectComposer( @renderer );

        @composer.addPass( @renderPass )
        @composer.addPass( @textPass )
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用以下方法正常渲染它们时:

    @renderer.clear()
    @renderer.render @scene, @camera
    @renderer.clearDepth();
    @renderer.render @textScene, @camera
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作。 在此处输入图片说明

rendering three.js

3
推荐指数
1
解决办法
2951
查看次数

地形纹理

有没有办法以渐变的方式混合2个纹理?恩.第一个纹理从顶部开始,然后到达底部,第二个纹理从底部开始并向上移动.我想让它们像渐变中那样松散不透明,以创建平滑的连接.可能吗?

也许有其他方法来创建这样的纹理?问题是我的地形高度差异看起来不太好 - 在一个方形区域,一个三角形的纹理与另一个三角形不同.

opengl textures texturing texture-mapping

0
推荐指数
1
解决办法
677
查看次数

将顶点保存到纹理并传递到着色器

终于有时间玩着色器,但一时间卡住了.我想将顶点传递给着色器并在其上制作一些gpgpu.

Gpgpu工作正常,我猜是因为我看到几个像素,中间的一个被推到一边,因为我放入代码只是为了测试.

现在我想传递球体顶点.以下是我要采取的步骤.请指出错误:-)

编辑:小提琴添加 - 点击这里

1)创建几何体,并将其传递给数据数组.

geometry = new THREE.SphereGeometry( 0.2, 15, 15 );
console.log(geometry.vertices.length);
var a = new Float32Array(geometry.vertices.length * 4);
for(var k=0; k<geometry.vertices.length; k++) {
                a[ k*4 + 0 ] = geometry.vertices[k].x;
                a[ k*4 + 1 ] = geometry.vertices[k].y;
                a[ k*4 + 2 ] = geometry.vertices[k].z;
                a[ k*4 + 3 ] = 1;   
}
Run Code Online (Sandbox Code Playgroud)

2)将其保存在数据纹理中

posTexture[2] = new THREE.DataTexture(a, 16, 16, THREE.RGBAFormat, THREE.FloatType);
Run Code Online (Sandbox Code Playgroud)

3)设置'Set scene'(它应该将datatexture传递给它一次)setUniforms = {posTexture:{type:"t",value:posTexture [2]}};

var setMaterial = new THREE.ShaderMaterial({
    uniforms: setUniforms,
    vertexShader:   document.getElementById('setVert').textContent, …
Run Code Online (Sandbox Code Playgroud)

javascript shader textures three.js

-5
推荐指数
1
解决办法
1587
查看次数