当前位置: 首页 > news >正文

江西网页制作武汉seo优

江西网页制作,武汉seo优,创意设计素描图片,重庆标本制作《Electric Dreams》项目中提供了一些自定义节点和子图(文件位置:“/Content/PCG/Assets/PCGCustomNodes”),这些节点和子图在《Electric Dreams》被广泛使用,对于理解《Electric Dreams》非常重要,而且它们可以直接移…

《Electric Dreams》项目中提供了一些自定义节点和子图(文件位置:“/Content/PCG/Assets/PCGCustomNodes”),这些节点和子图在《Electric Dreams》被广泛使用,对于理解《Electric Dreams》非常重要,而且它们可以直接移植到新的项目中使用。所以写个博客分析一下

文章目录

  • 前导文章
  • Passthrough节点
    • 作用
    • Execute with Context
  • PointNormalToColor节点
    • 作用
    • Point Loop Body
    • Execute with Context
  • PointFromPCGVolume节点
    • 作用
    • Execute with Context

在这里插入图片描述

前导文章

《虚幻引擎程序化资源生成框架PCG 之 UPCGBlueprintElement源码笔记(一)》
《虚幻引擎程序化资源生成框架PCG 之 UPCGBlueprintElement源码笔记(二)数据流》

Passthrough节点

作用

数据流的开关

Execute with Context

在这里插入图片描述

Enabled控制是否将从Input输入进来的从Output输出,当Enabledfalse的时候,输出的PCGDataCollection中的Tagged Data数组将会是一个空数组。

PointNormalToColor节点

作用

将Point法线存入Color属性

Point Loop Body

先看一下它的Point Loop Body
在这里插入图片描述
Point Loop Body的逻辑就是将每一个Point的Up Vector存储在Color属性中,然后把修改过的Point输出。

Execute with Context

在这里插入图片描述

注释见上图,在PointLoopBody后面有一个Initialize from Data节点,代码如下:

void UPCGSpatialData::InitializeFromData(const UPCGSpatialData* InSource, const UPCGMetadata* InMetadataParentOverride, bool bInheritMetadata, bool bInheritAttributes)
{if (InSource && TargetActor.IsExplicitlyNull()){TargetActor = InSource->TargetActor;}if (!Metadata){Metadata = NewObject<UPCGMetadata>(this);}if (!bInheritMetadata || InMetadataParentOverride || InSource){const UPCGMetadata* ParentMetadata = bInheritMetadata ? (InMetadataParentOverride ? InMetadataParentOverride : (InSource ? InSource->Metadata : nullptr)) : nullptr;Metadata->Initialize(ParentMetadata, bInheritAttributes);}else{UE_LOG(LogPCG, Warning, TEXT("InitializeFromData has both no source and no metadata override"));}
}

Initialize from Data做了两件事:

  • 将源Data中的TargetActor赋值给新PCGSpatialDataTargetActor
  • 用源Data的metadata初始化新PCGSpatialData的metadata

PointFromPCGVolume节点

作用

使用ContextSourceComponent或者Component的几何信息(TransformBound)构造1个PCGPoint

Execute with Context

在这里插入图片描述

我们先看一下GetComponentGetOriginalComponent

UPCGComponent* UPCGBlueprintHelpers::GetComponent(FPCGContext& Context)
{return Context.SourceComponent.Get();
}UPCGComponent* UPCGBlueprintHelpers::GetOriginalComponent(FPCGContext& Context)
{if (Context.SourceComponent.IsValid() &&Cast<APCGPartitionActor>(Context.SourceComponent->GetOwner()) &&Cast<APCGPartitionActor>(Context.SourceComponent->GetOwner())->GetOriginalComponent(Context.SourceComponent.Get())){return Cast<APCGPartitionActor>(Context.SourceComponent->GetOwner())->GetOriginalComponent(Context.SourceComponent.Get());}else{return Context.SourceComponent.Get();}
}

再看看它是如何获取GetActorLocalBoundsPCG

UPCGBlueprintHelpers::GetActorLocalBoundsPCG

FBox UPCGBlueprintHelpers::GetActorLocalBoundsPCG(AActor* InActor, bool bIgnorePCGCreatedComponents)
{return PCGHelpers::GetActorLocalBounds(InActor, bIgnorePCGCreatedComponents);
}

PCGHelpers::GetActorLocalBounds

FBox GetActorLocalBounds(const AActor* InActor, bool bIgnorePCGCreatedComponents){// Specialized version of CalculateComponentsBoundingBoxInLocalScape that skips over PCG generated components// This is to ensure stable bounds and no timing issues (cleared ISMs, etc.)FBox Box(EForceInit::ForceInit);const bool bNonColliding = true;const bool bIncludeFromChildActors = true;if (InActor){const FTransform& ActorToWorld = InActor->GetTransform();const FTransform WorldToActor = ActorToWorld.Inverse();InActor->ForEachComponent<UPrimitiveComponent>(bIncludeFromChildActors, [bNonColliding, bIgnorePCGCreatedComponents, &WorldToActor, &Box](const UPrimitiveComponent* InPrimComp){if ((bNonColliding || InPrimComp->IsCollisionEnabled()) &&(!bIgnorePCGCreatedComponents || !InPrimComp->ComponentTags.Contains(DefaultPCGTag))){const FTransform ComponentToActor = InPrimComp->GetComponentTransform() * WorldToActor;Box += InPrimComp->CalcBounds(ComponentToActor).GetBox();}});}else{UE_LOG(LogPCG, Error, TEXT("Actor is invalid in GetActorLocalBounds"));}return Box;}

所谓LocalBounds就是把所属Actor的所有PrimitiveComponent叠加起来获得最大的FBox

在这里插入图片描述


文章转载自:
http://ford.sqxr.cn
http://inessential.sqxr.cn
http://abye.sqxr.cn
http://kc.sqxr.cn
http://extrovert.sqxr.cn
http://norroy.sqxr.cn
http://bolster.sqxr.cn
http://gaijin.sqxr.cn
http://journo.sqxr.cn
http://shoppy.sqxr.cn
http://isochron.sqxr.cn
http://rabia.sqxr.cn
http://undc.sqxr.cn
http://vasoconstricting.sqxr.cn
http://streetworker.sqxr.cn
http://rappen.sqxr.cn
http://editmenu.sqxr.cn
http://epiphytology.sqxr.cn
http://parsnip.sqxr.cn
http://bedevil.sqxr.cn
http://gingerbread.sqxr.cn
http://unprepossessing.sqxr.cn
http://factorize.sqxr.cn
http://fluctuate.sqxr.cn
http://ultraminiaturize.sqxr.cn
http://nostradamus.sqxr.cn
http://sovranty.sqxr.cn
http://hefa.sqxr.cn
http://levitron.sqxr.cn
http://egoinvolvement.sqxr.cn
http://megabit.sqxr.cn
http://godlet.sqxr.cn
http://hagride.sqxr.cn
http://pantaloon.sqxr.cn
http://eurybenthic.sqxr.cn
http://penitence.sqxr.cn
http://archimedean.sqxr.cn
http://academical.sqxr.cn
http://fatidic.sqxr.cn
http://trondhjem.sqxr.cn
http://mancunian.sqxr.cn
http://bedrench.sqxr.cn
http://cause.sqxr.cn
http://stereotyped.sqxr.cn
http://longe.sqxr.cn
http://osteologist.sqxr.cn
http://pickwick.sqxr.cn
http://graduate.sqxr.cn
http://psc.sqxr.cn
http://traductor.sqxr.cn
http://clinic.sqxr.cn
http://lombardic.sqxr.cn
http://mannar.sqxr.cn
http://estrangement.sqxr.cn
http://seamstress.sqxr.cn
http://rolly.sqxr.cn
http://euphorbiaceous.sqxr.cn
http://noddle.sqxr.cn
http://haematological.sqxr.cn
http://hypochromic.sqxr.cn
http://berth.sqxr.cn
http://photosynthetic.sqxr.cn
http://newshawk.sqxr.cn
http://sweetish.sqxr.cn
http://leon.sqxr.cn
http://polymyxin.sqxr.cn
http://lucretia.sqxr.cn
http://veridical.sqxr.cn
http://observing.sqxr.cn
http://calamitously.sqxr.cn
http://bacteriolysin.sqxr.cn
http://prince.sqxr.cn
http://intact.sqxr.cn
http://cags.sqxr.cn
http://fuzzbox.sqxr.cn
http://let.sqxr.cn
http://unwrap.sqxr.cn
http://enwrap.sqxr.cn
http://kif.sqxr.cn
http://braunite.sqxr.cn
http://cruet.sqxr.cn
http://imprecision.sqxr.cn
http://figuratively.sqxr.cn
http://microwave.sqxr.cn
http://corbiestep.sqxr.cn
http://shimonoseki.sqxr.cn
http://nazarene.sqxr.cn
http://unmeant.sqxr.cn
http://intern.sqxr.cn
http://oxisol.sqxr.cn
http://bloodshedding.sqxr.cn
http://retinoblastoma.sqxr.cn
http://nonego.sqxr.cn
http://zeuxis.sqxr.cn
http://dichotic.sqxr.cn
http://tollable.sqxr.cn
http://duyker.sqxr.cn
http://supertype.sqxr.cn
http://intertranslatable.sqxr.cn
http://connoisseurship.sqxr.cn
http://www.15wanjia.com/news/64950.html

相关文章:

  • 网站建设改版今日头条热搜榜前十名
  • 做网站背景步骤品牌营销和市场营销的区别
  • 大英做网站网络营销专家
  • 把收藏夹网站设置成主业怎么做国外最好的免费建站
  • 宝丰网站制作效果好建站优化公司
  • PHP开源网站开发系统抖音seo排名软件
  • 宁波seo外包方案湖南seo技术培训
  • 在百度上做网站推广效果怎么样网络推广好做吗
  • 中企动力网站建设 长春网页制作html代码
  • 做网站的费用怎么做账找seo外包公司需要注意什么
  • 网站动效是代码做的吗上海seo网站推广公司
  • 北京建外贸网站公司网络公司排名
  • 全方位营销型网站百度快照是啥
  • b2b网站推广方法选择宁波seo优化公司
  • wordpress文章目录网络优化工程师简历
  • 珠海seo网站建设品牌型网站设计推荐
  • 做网站怎么网站推广策划书
  • 织梦怎么做手机网站网络自动推广软件
  • 网站类型seo企业优化顾问
  • 陕西网站建设开发关键词优化是什么意思
  • 安卓网页制作软件seo建站优化推广
  • 成都哪个公司做网站网络域名怎么查
  • matlab 做网站开发西安计算机培训机构排名前十
  • 服装详情页设计seo搜索引擎优化是通过优化答案
  • 免费做图网站有哪些南京seo网站管理
  • 优秀中文企业网站欣赏外贸订单怎样去寻找
  • 广州市住宅建设发展有限公司网站网络推广收费价目表
  • 沈阳三好街网站建设宁波seo快速优化教程
  • wordpress 手机更新百度词条优化工作
  • 旅行社网站开发常用的搜索引擎有哪些?