vault backup: 2024-11-05 23:13:12

This commit is contained in:
BlueRose 2024-11-05 23:13:12 +08:00
commit bba4d5d339
8 changed files with 159 additions and 9 deletions

View File

@ -1 +1 @@
{"582020846":{"582020846":{"currentFile":{"count":1,"lastUpdated":1727792069567}}},"实现了一个在屏幕空间宽度恒定的":{"实现了一个在屏幕空间宽度恒定的":{"currentFile":{"count":1,"lastUpdated":1728700795488}}},"TsDirectorCamManagerActor":{"TsDirectorCamManagerActor":{"currentFile":{"count":1,"lastUpdated":1729139925413}}},"Bloom":{"Bloom":{"currentFile":{"count":1,"lastUpdated":1729490733473}}},"FBloomFinalizeApplyConstantsCS":{"FBloomFinalizeApplyConstantsCS":{"currentFile":{"count":1,"lastUpdated":1729584275683}}},"解决NaiLin高跟":{"解决NaiLin高跟":{"currentFile":{"count":1,"lastUpdated":1729587089926}}},"优化项目举例,参与多个项目。":{"优化项目举例,参与多个项目。":{"currentFile":{"count":1,"lastUpdated":1729696025968}}},"制作各种编辑器工具":{"制作各种编辑器工具":{"currentFile":{"count":1,"lastUpdated":1729696038138}}},"RigidBodyIndex":{"RigidBodyIndex":{"currentFile":{"count":1,"lastUpdated":1730280351906}}}}
{"实现了一个在屏幕空间宽度恒定的":{"实现了一个在屏幕空间宽度恒定的":{"currentFile":{"count":1,"lastUpdated":1728700795488}}},"TsDirectorCamManagerActor":{"TsDirectorCamManagerActor":{"currentFile":{"count":1,"lastUpdated":1729139925413}}},"Bloom":{"Bloom":{"currentFile":{"count":1,"lastUpdated":1729490733473}}},"FBloomFinalizeApplyConstantsCS":{"FBloomFinalizeApplyConstantsCS":{"currentFile":{"count":1,"lastUpdated":1729584275683}}},"解决NaiLin高跟":{"解决NaiLin高跟":{"currentFile":{"count":1,"lastUpdated":1729587089926}}},"优化项目举例,参与多个项目。":{"优化项目举例,参与多个项目。":{"currentFile":{"count":1,"lastUpdated":1729696025968}}},"制作各种编辑器工具":{"制作各种编辑器工具":{"currentFile":{"count":1,"lastUpdated":1729696038138}}},"RigidBodyIndex":{"RigidBodyIndex":{"currentFile":{"count":1,"lastUpdated":1730280351906}}},"IOS&Android Engine Package":{"IOS&Android Engine Package":{"internalLink":{"count":1,"lastUpdated":1730702690372}}}}

View File

@ -0,0 +1,4 @@
# 11.4~11.8
1. 给心仪的代码添加闪光效果,并且调整频率与指定音乐相同。
2. 给NaiLin、BeiLa、JiaRan的夏日服制作IKRig以及重定向资产。
3. 解决道具Spot会被剔除的问题。

View File

@ -0,0 +1,45 @@
---
title: Untitled
date: 2024-11-05 16:57:23
excerpt:
tags:
rating: ⭐
---
# 前言
- StaticMesh:https://zhuanlan.zhihu.com/p/702589732
- 其他代码
- [RuntimeStaticMeshImporter](https://github.com/RianeDev/RuntimeStaticMeshImporter)
- [RuntimeMeshLoader](https://github.com/Chrizey91/RuntimeMeshLoader)
## 相关函数
```text
bool FSceneImporter::ProcessMeshData(FAssetData& MeshData)
UStaticMesh::BuildFromMeshDescription
```
```c++
FDatasmithMeshElementPayload MeshPayload;
{
if (!Translator->LoadStaticMesh(MeshElement, MeshPayload))
{ // If mesh cannot be loaded, add scene's resource path if valid and retry
bool bSecondTrySucceeded = false;
if (FPaths::DirectoryExists(SceneElement->GetResourcePath()) && FPaths::IsRelative(MeshElement->GetFile()))
{ MeshElement->SetFile( *FPaths::Combine(SceneElement->GetResourcePath(), MeshElement->GetFile()) );
bSecondTrySucceeded = Translator->LoadStaticMesh(MeshElement, MeshPayload);
}
if (!bSecondTrySucceeded)
{ // #ueent_datasmithruntime: TODO : Update FAssetFactory
ActionCounter.Add(MeshData.Referencers.Num());
FAssetRegistry::UnregisteredAssetsData(StaticMesh, SceneKey, [](FAssetData& AssetData) -> void
{
AssetData.AddState(EAssetState::Completed);
AssetData.Object.Reset();
});
UE_LOG(LogDatasmithRuntime, Warning, TEXT("CreateStaticMesh: Loading file %s failed. Mesh element %s has not been imported"), MeshElement->GetFile(), MeshElement->GetLabel());
return true;
} }}
TArray< FMeshDescription >& MeshDescriptions = MeshPayload.LodMeshes;
```

View File

@ -43,6 +43,11 @@ https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest
## Dockerhub Token
dckr_pat_mWBh2SVqaaIU1QuAzSngrt8H6Do
# IOS
- 38100977@qq.com
- bluerose_us@qq.com
- loujiajie2@sina.com
# 路由器DDNS
https://blueroses.asuscomm.com:8443/Main_Login.asp

View File

@ -0,0 +1,57 @@
# 前言
- https://github.com/assimp/assimp
- 知乎文章
- Assimp与模型渲染的故事模型加载骨骼蒙皮动画:https://zhuanlan.zhihu.com/p/559637598
- Assimp库的编译总结:https://zhuanlan.zhihu.com/p/533138560
# 数据结构
![[assimp_structure.png]]
|Struct|Content|
|---|---|
|aiScene|mRootNodemMeshesmMaterialsmAnimationsmTexturesmLightsmCameras|
|aiNode|mTransformationmParentmChildrenmMeshes(索引)|
|aiMesh|mVerticesmNormalsmTangentsmBitangentsmColorsmTextureCoordsmFacesmBonesmAnimMeshes|
|aiFace|mIndices|
|aiMaterial|GetTextureCount(...)GetTexture(...)|
|aiAnimation|mDurationmTicksPerSecondmChannelsmMeshChannels|
|aiNodeAnim|mNodeNamemPositionKeysmRotationKeysmScalingKeysmPostState|
## Model类
## Scene场景
- mRootNode[根节点](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E6%A0%B9%E8%8A%82%E7%82%B9&zhida_source=entity),是整个场景图的起点,包含了其他所有[子节点](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E5%AD%90%E8%8A%82%E7%82%B9&zhida_source=entity)的引用。
- mMeshes[]包含了场景中所有的网格Mesh数据的数组。
- mMaterials[]:包含了场景中所有材质的数组。
## Node节点
- Root Node顶层的根节点可以有多个子节点。
- Child Node子节点可以进一步包含更多的子节点和网格。
- mChildren[][子节点数组](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E5%AD%90%E8%8A%82%E7%82%B9%E6%95%B0%E7%BB%84&zhida_source=entity)。
- mMeshes[]:当前节点所含网格的数组。
- 每个节点都可能包含对其他子节点的引用和/或对一个或多个网格的引用。这构成了一个[树状结构](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E6%A0%91%E7%8A%B6%E7%BB%93%E6%9E%84&zhida_source=entity)用于表示3D模型的层次和组成。
## Mesh网格
- mVertices[]:存储网格顶点的数组。
- mNormals[]:存储顶点法线的数组,用于光照和渲染。
- mTextureCoords[]:存储[纹理坐标](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E7%BA%B9%E7%90%86%E5%9D%90%E6%A0%87&zhida_source=entity)的数组,用于将[纹理映射](https://zhida.zhihu.com/search?content_id=242521769&content_type=Article&match_order=1&q=%E7%BA%B9%E7%90%86%E6%98%A0%E5%B0%84&zhida_source=entity)到模型上。
- mFaces[]:存储面(由顶点构成)的数组。
- mMaterialIndex材质索引用于从场景中的材质数组mMaterials[]中引用对应的材质。
## Face
- mIndices[]:存储构成面的顶点索引的数组。
# 载入文件
```c++
mScenePtr = mImporter.ReadFile(file,
aiProcess_Triangulate |
aiProcess_MakeLeftHanded |
aiProcess_CalcTangentSpace |
aiProcess_GenSmoothNormals |
aiProcess_OptimizeMeshes);
```
## 枚举说明
- aiProcess_Triangulate非三角形几何图元主动拆分成三角形。
- aiProcess_MakeLeftHanded转换成左手坐标系一般用于Direct3D渲染程序。
- aiProcess_CalcTangentSpace
- aiProcess_GenSmoothNormals生成平滑法线。
- aiProcess_OptimizeMeshes优化模型减少模型数量

View File

@ -55,7 +55,7 @@
1. Stat Unit、FPS。
2. RenderDoc + ProfileGPU。
3. UnrealInsight。
10. 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
3. 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
1. 接手ASoul项目。
2. c++/Puerts/蓝图项目。20% / 70% / 10%
2. 卡通渲染引擎。***TODO***
@ -83,12 +83,12 @@
- ToonDiffusion对场景亮部进行降采样之后将亮度信息叠加到Toon物体的暗部上。
- Anti-ToneMapping
- 延迟 + 前向混合管线(原神)
1. 其他技术栈。Nodejs系列的前后端APPQt、Pyside2
11. 手游美术效果研发
4. 其他技术栈。Nodejs系列的前后端APPQt、Pyside2
4. 手游美术效果研发
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
- 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
- 评估很多相对再PC上表现效果好的技术能不能在进行一些算法简化后移植到移动端。
12. 手游平台的优化
5. 手游平台的优化
- 根据项目类型不同,侧重不同的优化方向:
- 大世界项目主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
- 箱庭类ARPG项目会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
@ -121,18 +121,57 @@
3. 边缘光基于后处理的RimLighting。
4. 阴影偏移方案:
5. 其他方案:
1. 角色捏人、表情、
2. 配色方案。
1. 角色捏人、表情
1. Girls Band cry
2. 蓝色协议使用全骨骼的表情方案:
1. 眉毛37个、眼睛42个、 嘴巴53个、轮廓/鼻子18个
2. 捏脸
- 骨骼
- BlendShape
- 贴花
- 参考游戏
- DAZ3D
- 恋爱活动2
- Honey Select
- VAM
1. 身体分成多个部分,且每个部分采用公共骨骼。
- 部位
- 帽子
- 后头部
- 头发
- 脸
- 手
- 上半身
- 下半身
- 脚
- 内衣
- 身体数据使用自定义的数据资产进行管理ID
1. 身体部分与数值偏移
1. 子组件
1. 数值类型
2. 骨骼ID
3. 默认值
4. 最小最大值
- 衣服
1. 使用骨骼来控制衣服长短?
- 头发
1. 为同一个发型制作多种头发来适配不同的帽子
2. KawaiiPhysics
- 表情
1. 25种基础表情
2. 嘴部的轮廓是双层的,以此来实现漫画中的效果。
3. 脸部调整了法线,来解决面部阴影问题。
2. CEDEC 2023
1. BMG Dream。
3. CEDEC 2024
1. 学院偶像大师分享。
2. 次世代 NPR の輪郭線表現
4. 部分分享没有公开实属可惜比如2022的异度神剑3没有及时下载视频没了还好知乎有人分享心得。
2. 根据需求查看gdc的文章。
6. 根据需求查看gdc的文章。
1. FastSSS。
2. GDC 2004 Marschner Hair paper的Kajiya-Kay Model
6. 最后问问题
6. 捏脸
7. 最后问问题
1. 如果我没有通过面试,那可能是什么方面的原因?***TODO是否可以以及有必要问***

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB