做梦诗人的博客

仰天大笑出门去


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索
关闭

FrameGraph

发表于 2023-04-09   |   分类于 Frame

导语
该框架设计图不代表最终实施结果,仅展示构思过程。

阅读全文 »

UnrealEngineOBSClient

发表于 2023-04-06   |   分类于 UE4

UnrealEngineOBSClient

This plugin provides a convenient way to access object storage services that comply with the Amazon S3 protocol.

ph01

Features

  1. Support Path and Virtual Hosted requests style.

  2. Blueprintnode based.

  3. With multilingual debug UMG.

  4. Encapsulated and easier-to-use file download and upload nodes.

  5. Fully use UE’s C++ API, theoretically supporting multiple platforms.

    阅读全文 »

Android NDK入门避坑指南

发表于 2022-11-29   |   分类于 Android

导语
最近在尝试开发一体机VR(Android系统),但是苦于第三方库插件一直无法打包成功,因此开始学习之路。
本文收藏自 Android NDK入门避坑指南

前言

本文基于自己所学到的NDk的知识和一些在网上查到的资料

因为学习NDK的时间不是很长,学到的内容难免有所错漏,希望有问题的可以明确的指出来,我会积极采纳

本文会竭尽可能的将我现在所学到的关于NDK的知识清晰的表达出来,本文主要以NDK的基本概念,NDK的组成部分,NDK的注意事项三个部分组成

实践部分因为本篇文章已经6000多字了,为了不让文章过长,将会在后面的博客中

一. NDK的基本概念

在学习NDK之前,我首先得知道什么是NDK,NDK可以干些什么,使用NDK的好处有哪些,知道了这些,我们才可以更好的学习NDK

1. 什么是NDK

NDK即Native Development Kit,是Android中的一个开发工具包,为我们提供native开发的环境

NDK是我们实现Java与Native进行交互的一个手段

阅读全文 »

如何用tauri + vue 搭建一个windows应用

发表于 2022-10-08   |   分类于 Rust , Tauri

导语

本次实验,使用 tauri 作为桌面框架,使用 Rust 语言作为后端,使用 axum 作为后端框架,使用 vue3 + element-plus 作为前端UI,使用 cargo + npm 作为包管理器,使用 vite 作为前端打包工具, 使用 TS 作为前端开发语言
使用 websocket 作为通信协议

npm 官网
https://www.npmjs.com/package/npm
https://docs.npmjs.com/

1.用vite创建一个vue项目

vite 官网
https://vitejs.cn/

1
npm create vite@latest

cd vite-project
npm install
npm run dev

VS Code 安装的插件

JavaScript and TypeScript Nightly
Tauri
rust-analyzer
Vue Language Features (Volar)

CodeLLDB
es6-string-html

阅读全文 »

在 Docker 中运行 PostgreSQL

发表于 2022-10-08   |   分类于 DataBase , PostgreSQL

导语
我们在这里要做的是下载PostgreSQL镜像,检查镜像是否准备好,使用特定参数运行镜像,最后连接到正在运行的PostgreSQL实例。

1.拉取一个 PostgreSQL 服务器 Docker 镜像

首先,我们需要从Docker Hub获取现有的 PostgreSQL 官方镜像。如果您需要特定版本,latest 请将标签更改 为所需版本。
现在让我们拉取镜像:

1
sudo docker pull postgres:latest

使用上述命令将从 Docker Hub 存储库中提取最新可用版本的 PostgreSQL。

2. 从 PostgreSQL 服务器 Docker 镜像运行容器

在部署之前,您需要设置一个 Docker 卷或绑定安装来持久化您的数据库。否则,当容器重新启动时,您的数据将丢失。安装应该 /var/lib/postgresql/data 在容器内的目录中。
出于本指南的目的,我们将创建一个 docker 卷并将其附加到您的 PostgreSQL 容器。
以下命令将在您的本地计算机中创建卷,您可以稍后与 PostgreSQL 容器连接:

1
sudo docker volume create postgres-volume

现在你的机器上有 PostgreSQL 镜像和一个用于保存数据的卷,你可以部署一个容器:

1
sudo docker run -d --name=postgres14 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=your_password postgres

默认用户名是 postgres

阅读全文 »

UE4-performance

发表于 2022-06-17   |   分类于 UE4 , performance

性能分析

帧率打印

在UE编辑器运行或打包为Development版本的打包文件运行时,可用 “~” 键(键盘数字1键左边的按键)呼出Runtime Command,并执行 stat fps,即可打印帧率和延迟进行实时监测。

GPU Visualizer

在编辑器运行状态下可以使用快捷键“Ctrl+Shift+逗号”呼出GPU Visualizer,截取当前帧的渲染消耗细分列表,对帮助分析性能消耗占比帮助很大。
如下图:因为输出了5个窗口,每个窗口对应了一个Scene,点开可以看到每个画面具体的消耗所占用的毫秒数,右侧Duration可以点击进行升降序排列,分析占用毫秒数最多的条目。
GPU-Visualizer

优化建议

阅读全文 »

FString和各种数据格式间转换

发表于 2022-04-20   |   分类于 UE4

一、UE4 Source Header References

1
2
3
4
CString.h
UnrealString.h
NameTypes.h
StringConv.h (TCHAR_TO_ANSI etc)

CString.h可以查到更多,如

1
2
atoi64 (string to int64)
Atod (string to double precision float)

二、日志打印

1.输出字符串到output log中

1.1 最普通的三种

1
2
3
4
5
FString filePath
UE_LOG(LogTemp, Log, TEXT("Hello,World!"));
UE_LOG(LogTemp, Warning, TEXT("Hello,World!"));
UE_LOG(LogTemp, Error, TEXT("Hello,World!"));
#### 1.2 %d打印int,%f打印float,%s string
阅读全文 »

Linux 系统目录结构

发表于 2022-04-16   |   分类于 Linux

树状目录结构:

img

阅读全文 »

UE4PythonHelper

发表于 2022-03-27   |   分类于 UE4

UE4PythonHelper

This plugin is only used in editor mode!!!

ph01

Features

  1. This plug-in provides an “unreallib.py” module, which contains a complete UnrealEngine Python API. When you use it in text editors such as VS Code, you will get intelligent code prompt, function parameter prompt, return value type inference, comments, etc. you can also jump to the function in the module to view the detailed function definition. It’s better than automatically generated unreal.py file, smaller and compact, and supports the Type Hint syntax of python3.
    阅读全文 »

哈夫曼编码在 UE4 中的实现

发表于 2021-12-04   |   分类于 UE4

导语
在UE4 中实现哈夫曼编码的本意是在网络数据传输的时候,进行数据包一定程度的数据压缩。但是实现完之后发现并无用武之地,一个是因为压缩的数据中还必须要包含编码表,对于高频、小数据包反而会增加数据的大小和增加编码解码的计算消耗。二是因为好多要传输的数据本身就是已经编码压缩过了,再次编码压缩已经没有效果了(比如UE4 的 RenderTarget 图像数据 和 VoiceData)。所以权当是一次代码练习吧。

关于哈夫曼编码

Huffman于1952年提出一种编码方法,该方法完全依据出现概率来构造异字头的平均长度最短的码字 。简单来说就是用最少的bit来表示出现频率最高的字符,生成一张编码对照表,解码的时候根据对照表依次还原就行。
比如 “aabccade”,其中总共有a、b、c、d、e 五个字符,a出现3次,c出现2次,b、d、e出现1次,
那么可以用0表示a,用1表示c,用10表示b,用11表示d,用100表示e。所以原字符就可以用

1
0-0-10-1-1-0-11-100

来表示了。当然具体实现细节要更复杂一点,涉及到二叉树,前缀码等。

好了,话不多说,上代码!

阅读全文 »

123
Dreamingpoet

Dreamingpoet

靡不有初 鲜克有终

26 日志
15 分类
45 标签
RSS
Github
Creative Commons
链接
  • 建站日志
© 2016 - 2023 Dreamingpoet
由 Hexo 生成
主题 - NexT.Pisces