vault backup: 2024-11-05 23:13:12
This commit is contained in:
commit
bba4d5d339
@ -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}}}}
|
4
01-Diary/周小结/2024.11.md
Normal file
4
01-Diary/周小结/2024.11.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# 11.4~11.8
|
||||||
|
1. 给心仪的代码添加闪光效果,并且调整频率与指定音乐相同。
|
||||||
|
2. 给NaiLin、BeiLa、JiaRan的夏日服制作IKRig以及重定向资产。
|
||||||
|
3. 解决道具Spot会被剔除的问题。
|
45
03-UnrealEngine/Gameplay/Gameplay/RuntimeLoadStaticMesh.md
Normal file
45
03-UnrealEngine/Gameplay/Gameplay/RuntimeLoadStaticMesh.md
Normal 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;
|
||||||
|
```
|
@ -43,6 +43,11 @@ https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest
|
|||||||
## Dockerhub Token
|
## Dockerhub Token
|
||||||
dckr_pat_mWBh2SVqaaIU1QuAzSngrt8H6Do
|
dckr_pat_mWBh2SVqaaIU1QuAzSngrt8H6Do
|
||||||
|
|
||||||
|
# IOS
|
||||||
|
- 38100977@qq.com
|
||||||
|
- bluerose_us@qq.com
|
||||||
|
- loujiajie2@sina.com
|
||||||
|
|
||||||
# 路由器DDNS
|
# 路由器DDNS
|
||||||
https://blueroses.asuscomm.com:8443/Main_Login.asp
|
https://blueroses.asuscomm.com:8443/Main_Login.asp
|
||||||
|
|
||||||
|
57
04-ComputerGraphics/Assimp/Assimp使用笔记.md
Normal file
57
04-ComputerGraphics/Assimp/Assimp使用笔记.md
Normal 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|mRootNode,mMeshes,mMaterials,mAnimations,mTextures,mLights,mCameras|
|
||||||
|
|aiNode|mTransformation,mParent,mChildren,mMeshes(索引)|
|
||||||
|
|aiMesh|mVertices,mNormals,mTangents,mBitangents,mColors,mTextureCoords,mFaces,mBones,mAnimMeshes|
|
||||||
|
|aiFace|mIndices|
|
||||||
|
|aiMaterial|GetTextureCount(...),GetTexture(...)|
|
||||||
|
|aiAnimation|mDuration,mTicksPerSecond,mChannels,mMeshChannels|
|
||||||
|
|aiNodeAnim|mNodeName,mPositionKeys,mRotationKeys,mScalingKeys,mPostState|
|
||||||
|
## 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:优化模型,减少模型数量?
|
||||||
|
|
@ -55,7 +55,7 @@
|
|||||||
1. Stat Unit、FPS。
|
1. Stat Unit、FPS。
|
||||||
2. RenderDoc + ProfileGPU。
|
2. RenderDoc + ProfileGPU。
|
||||||
3. UnrealInsight。
|
3. UnrealInsight。
|
||||||
10. 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
|
3. 程序完全没有问题,语言方面,修改渲染管线。说明现在正在开发的卡通渲染引擎与之后的路线图。
|
||||||
1. 接手ASoul项目。
|
1. 接手ASoul项目。
|
||||||
2. c++/Puerts/蓝图项目。20% / 70% / 10%
|
2. c++/Puerts/蓝图项目。20% / 70% / 10%
|
||||||
2. 卡通渲染引擎。***TODO***
|
2. 卡通渲染引擎。***TODO***
|
||||||
@ -83,12 +83,12 @@
|
|||||||
- ToonDiffusion:对场景亮部进行降采样,之后将亮度信息叠加到Toon物体的暗部上。
|
- ToonDiffusion:对场景亮部进行降采样,之后将亮度信息叠加到Toon物体的暗部上。
|
||||||
- Anti-ToneMapping
|
- Anti-ToneMapping
|
||||||
- 延迟 + 前向混合管线(原神)
|
- 延迟 + 前向混合管线(原神)
|
||||||
1. 其他技术栈。Nodejs系列的前后端APP;Qt、Pyside2;
|
4. 其他技术栈。Nodejs系列的前后端APP;Qt、Pyside2;
|
||||||
11. 手游美术效果研发
|
4. 手游美术效果研发
|
||||||
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
|
- 重点就是跟项目侧对齐下探机型,以及根据最低机型来做效果对齐。
|
||||||
- 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
|
- 针对机型分档提供一套美术效果方案,最高开哪些特性,中档开哪些特性,低档开哪些特性。跟项目定好的规范再去框技术方案。之后再拆分每个模块细节,进行深入分析。
|
||||||
- 评估很多相对再PC上表现效果好的技术,能不能在进行一些算法简化后,移植到移动端。
|
- 评估很多相对再PC上表现效果好的技术,能不能在进行一些算法简化后,移植到移动端。
|
||||||
12. 手游平台的优化
|
5. 手游平台的优化
|
||||||
- 根据项目类型不同,侧重不同的优化方向:
|
- 根据项目类型不同,侧重不同的优化方向:
|
||||||
- 大世界项目,主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
|
- 大世界项目,主要针对场景性能优化。比如定制距离加载策略、场景HLOD、植被按距离控制WPO等。
|
||||||
- 箱庭类ARPG项目,会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
|
- 箱庭类ARPG项目,会着重于战斗与表演效果。所以会集中于材质、特效方面的优化
|
||||||
@ -121,18 +121,57 @@
|
|||||||
3. 边缘光:基于后处理的RimLighting。
|
3. 边缘光:基于后处理的RimLighting。
|
||||||
4. 阴影偏移方案:
|
4. 阴影偏移方案:
|
||||||
5. 其他方案:
|
5. 其他方案:
|
||||||
1. 角色捏人、表情、
|
1. 角色捏人、表情
|
||||||
2. 配色方案。
|
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
|
2. CEDEC 2023
|
||||||
1. BMG Dream。
|
1. BMG Dream。
|
||||||
3. CEDEC 2024
|
3. CEDEC 2024
|
||||||
1. 学院偶像大师分享。
|
1. 学院偶像大师分享。
|
||||||
2. 次世代 NPR の輪郭線表現
|
2. 次世代 NPR の輪郭線表現
|
||||||
4. 部分分享没有公开实属可惜,比如2022的异度神剑3没有及时下载,视频没了,还好知乎有人分享心得。
|
4. 部分分享没有公开实属可惜,比如2022的异度神剑3没有及时下载,视频没了,还好知乎有人分享心得。
|
||||||
2. 根据需求查看gdc的文章。
|
6. 根据需求查看gdc的文章。
|
||||||
1. FastSSS。
|
1. FastSSS。
|
||||||
2. GDC 2004 Marschner Hair paper的Kajiya-Kay Model
|
2. GDC 2004 Marschner Hair paper的Kajiya-Kay Model
|
||||||
6. 最后问问题
|
6. 捏脸
|
||||||
|
7. 最后问问题
|
||||||
1. 如果我没有通过面试,那可能是什么方面的原因?***TODO是否可以以及有必要问?***
|
1. 如果我没有通过面试,那可能是什么方面的原因?***TODO是否可以以及有必要问?***
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
Loading…
x
Reference in New Issue
Block a user