4.8 KiB
Raw Blame History

9.2~9.6

  1. 测试ACL以及其他CommandLet针对项目启动的影响。
  2. 搭建大小棚用的P4 Server并且测试。

TODO

  1. 恢复P4的权限设置。
  2. 北京相关人员的P4工作区更换。
  3. 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
    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. 之后大活的实现方式。新建大地图,需要的场景手动移植到新的大地图。
/** 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)

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));  
    }}