小编Rav*_*ven的帖子

从外部调用webpacked代码(HTML脚本标记)

假设我有这样的类(用typescript编写)并将其与webpack捆绑在一起bundle.js.

export class EntryPoint {
    static run() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的index.html中,我将包含bundle,但是我还想调用那个静态方法.

<script src="build/bundle.js"></script>
<script>
    window.onload = function() {
        EntryPoint.run();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但是,EntryPoint在这种情况下,未定义.我如何从另一个脚本调用捆绑的JavaScript?

补充:Webpack配置文件.

html javascript typescript webpack

107
推荐指数
3
解决办法
4万
查看次数

GPU上的整数和按位运算的性能

虽然GPU应该用于浮点数据类型,但我对GPU处理按位运算的速度有多快感兴趣.这些是CPU上最快的,但是GPU模拟按位运算还是在硬件上完全计算?我打算在用GLSL编写的着色器程序中使用它们.另外我认为如果按位运算具有完全性能,整数数据类型也应该有,但我需要确认.

更准确地说,目标版本是OpenGL 3.2和GLSL 1.5.应该运行的硬件是任何Radeon HD显卡和GeForce系列8及更新..如果新版本的OpenGL和GLSL与按位操作/整数的处理速度有一些重大变化,我会很高兴,如果你'将它们指出来.

opengl performance gpu bit-manipulation glsl

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

正则表达式匹配最长的重复子字符串

我正在编写正则表达式来检查是否存在子串,其中包含至少2个彼此相邻的模式重复.我将正则表达式的结果与前一个字符串相匹配 - 如果相等,则存在这样的模式.通过示例更好地说:1010包含模式10,并且连续系列中有2次.另一方面,10210将不具有这种模式,因为那些10不相邻.

更重要的是,我需要找到最长的模式,它的长度至少为1.我已经写了表达式来检查它^.*?(.+)(\1).*?$.为了找到最长的模式,我使用了非贪婪的版本来匹配模式之前的东西,然后模式匹配到组1并且再次匹配组1匹配的相同的东西.然后匹配其余的字符串,产生相等的字符串.但是有一个问题是正则表达式在找到第一个模式后急于返回,并且没有真正考虑到我打算在最短的时间之前和之后制作那些子串(剩下最长的可能).所以从字符串01011010我得到正确的匹配,但存储在组1中的模式只是01我除了101.

因为我相信我不能让模式"更贪婪"或者在"更多非贪婪"之前和之后变废为止,我只能想出一个让正则表达式不那么渴望的想法,但我不确定这是否可行.

更多例子:

56712453289 - no pattern - no match with former string
22010110100 - pattern 101 - match with former string (regex resulted in 22010110100 with 101 in group 1)
5555555 - pattern 555 - match
1919191919 - pattern 1919 - match
191919191919 - pattern 191919 - match
2323191919191919 - pattern 191919 - match
Run Code Online (Sandbox Code Playgroud)

使用当前表达式会得到什么(使用相同的字符串):

no pattern - no match
pattern 2 - match
pattern 555 - match …
Run Code Online (Sandbox Code Playgroud)

regex perl pattern-matching

14
推荐指数
1
解决办法
5801
查看次数

使用着色器进行计算

是否可以使用着色器计算某些值,然后将它们返回以供进一步使用?

例如,我将网格向下发送到GPU,有一些关于如何修改它的参数(改变顶点的位置),并收回结果网格?我认为这是不可能的,因为我没有看到任何从着色器到CPU的通信变量.我正在使用GLSL,所以只有统一,属性和变化.我应该使用属性还是制服,渲染后它们是否仍然有效?我可以更改这些变量的值并在CPU中读回吗?有一些方法可以在GPU中映射数据但是这些方法会被更改和有效吗?

这是我正在考虑的方式,虽然可能有其他方式,这对我来说是不可知的.如果有人能解释我的话,我会很高兴,因为我刚读了一些关于GLSL的书,现在我想编写更复杂的着色器,我不想放弃目前不可能的方法.

谢谢

shader data-transfer glsl

13
推荐指数
1
解决办法
5466
查看次数

弹道曲线问题

好吧,我知道这对于程序员来说是非常偏离主题但我仍然需要这个应用程序,所以这里是:

弹道曲线(无风或任何其他条件)由以下两条线指定:

x坐标

y坐标

因此,存在一个问题,即您有3个未知值:x,y和时间t,但只有2个方程式.你不能用这些值真正计算所有3,我得到:

  • 速度v
  • 角度Alpha
  • 原点坐标

因此,您必须决定指定哪一个.

现在你有2D坦克游戏,或类似的东西,你知道你有坦克和使用弹道,你必须用设置角度和力量射击对手.

我需要知道子弹何时撞到地面,它可以在飞行时或预先计算时播出.出现了我的问题.哪种方式使用?在每个步骤中预先计算或检查是否击中地面.

如果我想预先计算,我需要知道地形的高度,这在逻辑上必须是恒定的,因为我不知道在哪个x坐标.如果我知道X,那就意味着我的炮塔前面就是墙.因此,当我到达地面时,唯一可以获得结果的方法是检查击中地面的时间间隔.这也很好,因为地形没有顶部静态yay!但这不是太大的开销,可以变得更简单吗?你遇到过这样的问题/解决方案吗?

提前谢谢,顺便说一下,地形可以是扁平的,使用线条或NURBS,所以我请求一般的解决方案,而不是特定的,因为你拍摄的高度会影响.

c++ physics

12
推荐指数
3
解决办法
4104
查看次数

着色器代替GPGPU

我想首先尝试一些GPGPU.我可以选择5种选择:OpenCL,CUDA,FireStream,Close to Metal,DirectCompute.那么不是真的,他们筛选了我的需求后,没有适合:)我使用的Radeon 3870HD,因此CUDA是出来了,我想跨平台的DirectCompute出来,靠近金属演变的FireStream(CUDA的等值AMD)和FS现在"过时"好的openCL.你猜怎么着?openCL可以从radeon 4xxx系列中获得.所以我不想学习那些不会被支持的东西,而且我没有新的硬件.

因此,在我获得新作品之前,我认为着色器可以真正做到类似的事情,更难以获得结果,也更慢.无论如何我不打算用这个做研究,所以对我来说它可能已经足够了.在google中搜索类似的东西是垃圾人的工作(没有冒犯)所以在用于显示的帧缓冲区之外的其他地方渲染的可能性是什么?可以创建纹理或其他缓冲区最适合这个吗?在纹理的情况下,我想要一些信息如何访问它,缓冲区应该没有太大的问题..

差点忘了,我正在使用openGL 3.1和GLSL 1.5

谢谢

opengl gpgpu glsl

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

在Visual Studio 2015中调试捆绑的javascript

我正在使用WebPack和这个简单的配置文件捆绑我的应用程序.

var path = require('path');

module.exports = {
    debug: true,
    devtool: 'source-map',

    context: path.join(__dirname, 'js'),
    entry: './main.js',
    output: {
        path: path.join(__dirname, 'Built'),
        filename: '[name].bundle.js'
    }
};
Run Code Online (Sandbox Code Playgroud)

这将创建源映射,我可以轻松地在所有流行的浏览器中调试我的原始javascript文件.但是,在Visual Studio中设置断点并运行项目不起作用,断点被禁用说"没有为此文档加载符号".我正在通过IE11进行调试,其中简单的javascript可以立即被Visual Studio调试,但是在捆绑后这不再起作用了.

有一个迹象表明源映射有效,因为我进入了控制台输出Unsupported format of the sourcemap.生成上面使用配置的源地图如下所示

{"version":3,"sources":["webpack:///webpack/bootstrap 2919a5f916c286b8e21a","webpack:///./main.js","webpack:///./structure_editor/content.js","webpack:///./structure_editor/test_bundle.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACVA,8C;;;;;;ACAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6B","file":"main.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n …
Run Code Online (Sandbox Code Playgroud)

javascript debugging visual-studio source-maps webpack

9
推荐指数
2
解决办法
3042
查看次数

在WebStorm 11中调试WebPack

我正在尝试使用源映射调试WebStorm中与WebPack捆绑的javascript应用程序.我当前的webpack.config.js看起来像这样:

var path = require('path');

module.exports = {
    debug: true,
    devtool: 'source-map',

    context: path.join(__dirname, 'js'),
    entry: './main.js',
    output: {
        path: path.join(__dirname, 'Built'),
        filename: '[name].bundle.js'
    }
}
Run Code Online (Sandbox Code Playgroud)

生成源映射,如下所示:

{"version":3,"sources":["webpack:///webpack/bootstrap 2919a5f916c286b8e21a","webpack:///./main.js","webpack:///./structure_editor/content.js","webpack:///./structure_editor/test_bundle.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACVA,8C;;;;;;ACAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6B","file":"main.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute …
Run Code Online (Sandbox Code Playgroud)

javascript debugging webstorm source-maps webpack

9
推荐指数
1
解决办法
4258
查看次数

在openGL中设置每秒最大帧数

有没有办法计算应该达到多少更新以达到所需的帧速率,而不是系统特定的?我发现对于windows,但我想知道openGL本身是否存在这样的东西.它应该是某种计时器.

或者我怎样才能防止FPS急剧下降或上升?这次我正在测试它在线上绘制大量顶点,并且使用fraps我可以看到帧速率从400到200 fps,并且绘制它的速度明显减慢.

c++ opengl performance

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

OpenGL灯限制

当我阅读RedBook时,我一直很困惑,openGL在场景中最多可以有8个灯(数量取决于实现,但应该是8周围).

但是我可以想象一些需要更多灯光的情况,所以我认为游戏开发中有一个技巧.

例如,你有很长的街道有50个strretlights,或者你可以有20个人的小队都使用手电筒.你如何模拟这些情况?有一个问题,光线只会照亮网格的一部分,而不是光源和物体之间的整个圆锥体,因此如果我们没有100%的清洁空气,也必须进行某种模拟.这样做的方式是什么,游戏运行顺畅?(我还读到所有8个灯都能杀死FPS)

opengl lighting

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