2024-09-06 15:25:52 +08:00
|
|
|
|
# 9.2~9.6
|
|
|
|
|
1. 测试ACL以及其他CommandLet针对项目启动的影响。
|
2024-09-06 17:23:31 +08:00
|
|
|
|
2. 搭建大小棚用的P4 Server,并且测试。
|
|
|
|
|
|
|
|
|
|
# TODO
|
|
|
|
|
1. [x] 恢复P4的权限设置。
|
|
|
|
|
2. [x] 北京相关人员的P4工作区更换。
|
|
|
|
|
3. [x] Bink播放视频没有声音问题解决。
|
|
|
|
|
4. [ ] 传动道具继续开发完善。
|
|
|
|
|
5. [ ] Sequence 播放VJ逻辑解决。
|
|
|
|
|
6. [ ] 曹老师切换LiveArea时RootMotion 问题。(切换前需要换回enable RootMotion,并在切换后再禁用)
|
|
|
|
|
7. [ ] 所有手机APP部署一次FaceMask。
|
|
|
|
|
8. [ ] P4触发器
|
|
|
|
|
1. [ ] https://www.perforce.com/manuals/p4sag/Content/P4SAG/scripting.triggers.variables.html
|
|
|
|
|
2. [ ] https://www.cnblogs.com/itech/archive/2011/08/17/2141310.html
|
|
|
|
|
3. [ ] https://www.perforce.com/manuals/p4sag/Content/P4SAG/scripting.triggers.command.html
|
|
|
|
|
4. [ ] Python检查代码: https://gist.github.com/cmcginty/8d99e0eac345e06dc1ba
|
|
|
|
|
5. [ ] [创建 Perforce 表单触发器以更改多行默认描述](https://stackoverflow.com/questions/76824451/creating-a-perforce-form-trigger-to-change-default-description-with-multi-lines) https://stackoverflow.com/questions/76824451/creating-a-perforce-form-trigger-to-change-default-description-with-multi-lines
|
|
|
|
|
6. [ ] ## Case Sensitivity: https://portal.perforce.com/s/article/3081
|
|
|
|
|
7. [ ] https://swarm.workshop.perforce.com/files/guest/perforce_software/sdp/dev/Unsupported/Samples/triggers/CheckCaseTrigger.py?v=%40%3D29027
|
|
|
|
|
8. [ ] https://swarm.workshop.perforce.com/files/guest/perforce_software/sdp/dev/Server/Unix/p4/common/bin/triggers/CheckCaseTrigger.py?v=4
|
|
|
|
|
|
|
|
|
|
# 问题
|
|
|
|
|
1. 功能测试问题:
|
|
|
|
|
1. 因为才艺资产会影响到直播性能,所以上次贝拉生日会之后就将才艺数据删除了。一些问题需要等到生日会技术彩排时才会出现是个非常大的问题。
|
|
|
|
|
2. 考虑购买P4或者再搞几台电脑在新棚的工位上布置用于测试的环境。
|
|
|
|
|
3. 给老六设置一个测试功能清单。
|
|
|
|
|
2. P4 文件夹大小写的问题。
|
|
|
|
|
1. 使用触发器+脚本检查。
|
|
|
|
|
2. 人工检查。
|
|
|
|
|
3. ~~P4 Shelf协作方法测试。~~ 理论可行,但字节并没有使用这种方式。
|
|
|
|
|
4. 之后大活的实现方式。新建大地图,需要的场景手动移植到新的大地图。
|
2024-09-06 18:59:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
/** Adds a render graph pass to copy a region from one texture to another. Uses RHICopyTexture under the hood.
|
|
|
|
|
* Formats of the two textures must match. The output and output texture regions be within the respective extents.
|
|
|
|
|
*/
|
|
|
|
|
RENDERCORE_API void AddCopyTexturePass(
|
|
|
|
|
FRDGBuilder& GraphBuilder,
|
|
|
|
|
FRDGTextureRef InputTexture,
|
|
|
|
|
FRDGTextureRef OutputTexture,
|
|
|
|
|
const FRHICopyTextureInfo& CopyInfo);
|
|
|
|
|
|
|
|
|
|
/** Simpler variant of the above function for 2D textures.
|
|
|
|
|
* @param InputPosition The pixel position within the input texture of the top-left corner of the box.
|
|
|
|
|
* @param OutputPosition The pixel position within the output texture of the top-left corner of the box.
|
|
|
|
|
* @param Size The size in pixels of the region to copy from input to output. If zero, the full extent of
|
|
|
|
|
* the input texture is copied.
|
|
|
|
|
*/
|
|
|
|
|
inline void AddCopyTexturePass(
|
|
|
|
|
FRDGBuilder& GraphBuilder,
|
|
|
|
|
FRDGTextureRef InputTexture,
|
|
|
|
|
FRDGTextureRef OutputTexture,
|
|
|
|
|
FIntPoint InputPosition = FIntPoint::ZeroValue,
|
|
|
|
|
FIntPoint OutputPosition = FIntPoint::ZeroValue,
|
|
|
|
|
FIntPoint Size = FIntPoint::ZeroValue)
|
|
|
|
|
{
|
|
|
|
|
FRHICopyTextureInfo CopyInfo;
|
|
|
|
|
CopyInfo.SourcePosition.X = InputPosition.X;
|
|
|
|
|
CopyInfo.SourcePosition.Y = InputPosition.Y;
|
|
|
|
|
CopyInfo.DestPosition.X = OutputPosition.X;
|
|
|
|
|
CopyInfo.DestPosition.Y = OutputPosition.Y;
|
|
|
|
|
if (Size != FIntPoint::ZeroValue)
|
|
|
|
|
{
|
|
|
|
|
CopyInfo.Size = FIntVector(Size.X, Size.Y, 1);
|
|
|
|
|
}
|
|
|
|
|
AddCopyTexturePass(GraphBuilder, InputTexture, OutputTexture, CopyInfo);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
SSR:
|
|
|
|
|
SHADER_PARAMETER_RDG_TEXTURE_SRV(Texture2D, SceneColor)
|
|
|
|
|
|
|
|
|
|
```c++
|
|
|
|
|
FRDGTextureSRVRef InputColor = GraphBuilder.CreateSRV(FRDGTextureSRVDesc(CurrentSceneColor));
|
|
|
|
|
if (SSRQuality != ESSRQuality::VisualizeSSR)
|
|
|
|
|
{
|
|
|
|
|
if (View.PrevViewInfo.CustomSSRInput.IsValid())
|
|
|
|
|
{ InputColor = GraphBuilder.CreateSRV(FRDGTextureSRVDesc(
|
|
|
|
|
GraphBuilder.RegisterExternalTexture(View.PrevViewInfo.CustomSSRInput.RT[0])));
|
|
|
|
|
} else if (GSSRHalfResSceneColor && View.PrevViewInfo.HalfResTemporalAAHistory.IsValid())
|
|
|
|
|
{ InputColor = GraphBuilder.CreateSRV(FRDGTextureSRVDesc(
|
|
|
|
|
GraphBuilder.RegisterExternalTexture(View.PrevViewInfo.HalfResTemporalAAHistory)));
|
|
|
|
|
} else if (View.PrevViewInfo.TemporalAAHistory.IsValid())
|
|
|
|
|
{ FRDGTextureRef TemporalAAHistoryTexture = GraphBuilder.RegisterExternalTexture(View.PrevViewInfo.TemporalAAHistory.RT[0]);
|
|
|
|
|
InputColor = GraphBuilder.CreateSRV(TemporalAAHistoryTexture->Desc.IsTextureArray()
|
|
|
|
|
? FRDGTextureSRVDesc::CreateForSlice(TemporalAAHistoryTexture, View.PrevViewInfo.TemporalAAHistory.OutputSliceIndex)
|
|
|
|
|
: FRDGTextureSRVDesc(TemporalAAHistoryTexture));
|
|
|
|
|
}}
|
|
|
|
|
```
|