- 博客(182)
- 资源 (1)
- 收藏
- 关注
原创 Unity中VFX烟雾特效与场景中的碎片物体重叠时闪烁问题
那么最终的效果就是显卡先渲染碎片物体然后再渲染烟雾,所以看起来烟雾一直在碎片物体之上,从而就不会闪烁了,因为碎片物体是恰好透明的那个渲染队列,渲染队列是3000,要小于烟雾的3050。如果渲染队列都是3000,那么显卡的渲染先后顺序随机,就会出现闪烁了。点击Unity项目中vfx特效文件,看右侧的Inspector窗口。
2025-03-01 00:42:54
177
原创 在typescript浏览器端中调用C++编写的函数,WebAssembly传递指针类型的参数,以及处理指针类型的返回值。
最后是返回一个C++结构体指针,在TypeScript中通过DataView来获取内存中的地址偏移量来取得结构体中的数据,因为em++编译器是以32位来编译.cpp文件的,所以指针占4个字节。DataResult结构体第一个属性dArr是一个指针,那么就是地址偏移量0,然后以32位无符号整型取得dArr指针,通过这个指针去读取wasm中memoryBuffer中的数据,就可以得到dArr属性对应的值了。同理,通过地址偏移量+4来得到propCount属性,以32位整数读取数据即可。
2024-09-17 00:14:16
679
原创 typescript如何调用自己编写的C++函数
在https://blog.youkuaiyun.com/Xeon_CC/article/details/139957190这篇文章已经直到,js文件以及对应的wasm文件如何生成了。我们把生成好的文件放入到typescript项目的src/lib/wasm目录下。那么typescript怎样才能调用C++编写的函数呢?然后尝试调用useModule函数即可。这是定义的C++函数。
2024-08-30 13:36:29
620
原创 第7讲:以Point、ObservablePoint为例,添加部分功能。
其中,ObservablePoint是使用很频繁的类,Point的位置一旦发生改变,触发回调changePointCallback。ObservablePoint也是IPoint的实现,所以新增的方法与Point一样。其中,Point.prototype.add = function(other: IPoint){setInterval是常用的定时器,每隔500毫秒执行一次函数,执行超过一定次数,结束定时器。在src/lib中,创建PointUtils.ts。就是往Point类中自己添加了add方法。
2024-07-15 17:08:05
257
原创 第6讲:增修别人的函数库,以pixi.js库中的Rectangle模块为例。
修改index.html文件,修改引用为AddChangeFunction.ts文件。在src目录下新建一个AddChangFunction.ts。在src/lib目录下新建一个RecUtils.ts文件。
2024-07-14 17:31:04
233
原创 第5讲:建立自己的C函数库,js调用自己写的C/C++函数,并包含依赖C/C++第三方静态库。
在javascript中,Array有很多内置的功能,比如Array.map,Array.filter,Array.find等等,能用内置的功能就用内置的功能,最好不要自己实现一套,因为底层调用的可能压根就不是js语言本身,底层的实现可能由C/C++实现的。如果我们要做的一些功能,需要高性能密集计算,但是JavaScript内置函数无法满足我们要求的时候,这时候我们就要自己用C/C++编写一个程序,然后封装成.a静态库给JavaScript调用了。我这里导出了所有的函数,函数前面要加上下划线。
2024-06-26 01:28:07
919
1
原创 第4讲:pixi.js绘制舞台、随窗口大小而改变画布大小和舞台位置
然后在index.html中,编辑代码,改成如下代码,现在我们引用CanvasAndStage.ts文件,而不要引用main.ts文件。基于前面写的代码,在gamelets的工程目录下新建一个CanvasAndStage.ts。随着浏览器缩放,黑色的画布会跟着缩放,容纳整个浏览器窗口。
2024-06-25 13:40:02
802
原创 第3讲:关于Pixi的Text、Container、Sprite、Graphics组件功能作用
Container是一个容器,如果多个组件放在一个容器中,如果容器的属性发生改变则,容器里面的子控件的属性都会发生改变。Graphics组件是用来绘制图形用的,比如线条,圆形,矩形等等。下部分各种组件基于这个公用代码直接往下添加代码即可。Sprite组件非常简单,就是显示一张图片。Text组件,非常简单,就是绘制文字。
2024-06-18 00:21:28
442
原创 第2讲:pixi.js 绘制HelloWorld
基于第0讲和第1讲,我们增添了vite.config.ts文件。并配置了其他的http端口。然后在package.json中点击Debug,启动了localhost:7777。删除 conter.ts、typescript.svg。此时,我们删除掉没用的东西。
2024-06-17 21:10:32
436
2
原创 第1讲:创建vite工程,使用框架为Vanilla时,语言是typescript,修改http端口的方法
直接在项目根目录创建 vite.config.ts文件。
2024-06-16 16:58:50
329
原创 第0讲:创建一个Vite工程
接下来选择框架为: Vanilla (表示不使用框架,原生JS)然后输入项目名,这里起名为gamelets(很多小游戏的意思)选择语言为:TypeScript。
2024-06-16 13:47:32
273
原创 JS调用C语言写的代码,cmake项目生成的wasm文件
那么这时候呢,libutil.wasm 也会被重新覆盖生成,并且会得到一个libutil.js。这个命令一定要执行,才可以生成正确的libutil.asm,我们这里不使用libutil.js,仅使用libutil.wasm即可。如果找不到emcc命令,请搜索emcc.bat文件在哪里,并配置Emscripten里面的emcc.bat文件所在目录的环境变量。如下图,这个libutil.wasm文件确实变了,这是一个有效的wasm文件。这意味着我会用node main.js命令来执行这个main.js代码。
2024-04-20 16:20:59
774
原创 在debian中vcpkg install gdal报错:error: building libpq:x64-linux failed with: BUILD_FAILED
最主要原因是autoconf包没有被安装到系统中。其他依赖顺便安装一下。
2024-01-23 12:00:01
949
原创 用虚函数的虚表调用成员函数
直接操作虚函数表是一种高度依赖于特定编译器实现的行为,它不是标准C++的一部分,因此可能在不同的编译器或平台上表现不一致,也可能引入安全和稳定性风险。在实际的应用开发中应该避免这种做法。不推荐在生产环境中写这种代码装B,行为危险,装B后果自负。
2023-11-27 18:02:51
549
原创 搭建SRS视频服务器
如果ffmpeg的路径不在/usr/local/bin/ffmpeg , 就要映射路径。在我这里,我已经把http_server 的端口改成了6930, 而不是默认的8080。注意,必须是1985端口。有时候可能默认显示别的端口。进入到srs/trunk 目录下,并执行编译命令。连接SRS就可以看到主机信息和摄像头实时动态。进入到浏览器即可访问。
2023-11-24 21:47:04
1185
原创 在linux环境下cmake中配置Qt6报错:but it set Qt6_FOUND to FALSE so package “Qt6“ is considered to be NOT FOUN
sudo apt-get install build-essential libgl1-mesa-dev
2023-10-11 10:29:50
1700
6
原创 ARM架构银河麒麟docker,源码编译安装GDAL
进入到GDAL源码目录并执行。下载GDAL3.4.3版本。以6个cpu核心编译源码。docker中安装依赖。去官网下载GDAL源码。
2023-08-09 14:02:07
1523
原创 elasticsearch 配置用户名和密码
无密码的其他配置项在:https://blog.youkuaiyun.com/Xeon_CC/article/details/132064295。
2023-08-02 23:38:45
7501
1
原创 Elasticsearch不规则多边形区域查询
其中self.es = Elasticsearch(hosts=self.host.split(‘,’), port=self.port)中,hosts参数接收的是一个字符串列表,例如[‘192.168.16.96’,‘192.168.16.97’,‘192.168.16.98’]等,端口是9200。其中变量coords是一个三维list列表,用来表示一个多边形顶点坐标,如果你的多边形没有挖孔,那么第一维只有一个元素,否则有多个。来检查location字段是不是geo_shape类型。
2023-06-28 08:58:43
869
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人