unreal4 全景_unreal 如何调用unreal studio - CSDN
  • UE4中采集360°全景图片和视频

    万次阅读 2016-12-23 10:30:11
    本文记录了如何在UE4中导出全景图片和视频。是导出而不是渲染。

    UE4中导出全景图片和视频


    1.插件测试—采集单帧双眼图像

    打开Epic Games Launcher,启动引擎(我使用的版本为4.14.0)。在弹出的对话框中点击New Project标签栏,再选择C++标签页,选择Vehicle Advanced模板,并将项目命名为STEREOSCOPIC。最后点击CreateProject。
    这里写图片描述
    在打开的编辑器菜单栏依次点击Edit→Plugins,然后选择左侧的Movie Capture,在右侧Stereo Panoramic Movie Capture条目中勾选Enabled。然后重启编辑器。
    当编辑器重启后,再次点击Edit→Plugins→Movie Capture,再次检查Stereo Panoramic Movie Capture是否已启用。
    在工具栏,依次点击Blueprints→OpenLevelBlueprint。在Event BeginPlay事件后,新建两个(具体依据需求而定)Execute Console Command节点保存我们需要执行的命令。
    这里先进行采集测试,将下面这两条命令分别放入Execute Console Command节点中:

    SP.OutputDir D:/StereoCaptureFrames
    // 采集单帧
    SP.PanoramicScreenshot

    如下图所示:
    这里写图片描述
    然后就可以点击工具栏的Play按钮了。此时系统可能会长时间没有响应(一分钟左右),然后将会有两帧图像存储到先前用SP.OutputDir指定的目录中(实际是在改目录中的一个日期与时间目录下,点击一次Play生成一个),一个是左眼图像,一个是右眼图像。
    这里写图片描述

    2.在项目中集成插件

    首先将引擎中的全景采集插件(Stereo Panomic Movie Capture)备份,再将整个插件目录剪切(注意是剪切,而不是复制)出来,一是供我们修改,二是防止和我们自己编译有冲突。Unreal引擎中的插件在路径\Epic Games\4.14\Engine\Plugins下,在这里我们需要将其中的StereoPanorama(\Plugins\Experimental\StereoPanorama)剪切出来。
    然后打开Stereo项目文件夹,在文件夹根目录下新建一个Plugins文件夹,将上一步剪切的StereoPanorama文件夹粘贴到这里。目录结构示例如下(限于篇幅这里只列出了必要的文件):
    这里写图片描述
    打开项目的场景编辑器,依次点击Editor→Plugins→Project→MovieCaputure,启用Stereo Panoramic Movie Caputure,然后重启项目。再次检查Stereo Panoramic Movie Capture是否被启用。
    项目编辑器中,依次点击File→OpenVisualStudio,在VS工程中,依次点击Solution→Games→STEREOSCOPIC→Config,打开DefaultEngine.ini文件,在该文件末尾添加如下文字。

    [Plugins]
    +EnabledPlugins=StereoPanorama

    如下所示(截图是添加插件后的工程,默认没有Plugins):
    这里写图片描述
    为了强制打包项目的时候插件能够和项目相连,在VS工程中,依次点击Solution→Games→STEREOSCOPIC→Source→STEREOSCOPIC→STEREOSCOPIC.Build.cs文件中添加模块依赖项。

     PrivateDependencyModuleNames.AddRange(new string[] { "StereoPanorama" });

    如下所示:
    这里写图片描述
    关闭Visual Studio和UE4编辑器,并重启。重启之后可以发现VS工程中已经添加了Plugins文件夹和StereoPanorama插件。

    3将左右眼图像自动组合成单一图像

    在VS工程中,依次打开Solution→Games→STEREOSCOPIC→Plugins→StereoPahorama→Source→StereoPahorama\Private,打开文件SceneCapture.cpp文件。全部修改工作均在次完成。

    为了使我们能够方便地控制合成的开关,我们需要定义一个bool常量在文件的头部,这样,在我们不需要开启合并的时候修改该常量的值即可,不必再修改其余的代码。

    // Newly inserted code.Defined a const bool
    const bool CombineAtlasesOnOutput = true;

    现在我们需要在代码中有条件地禁用每只眼睛的输出(通过上面定义的CombineAtlasesOnOutput来控制)。然后找到USceneCapturer::SaveAtlas()的底部,找到这样一段代码:

    IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::PNG );
    ImageWrapper->SetRaw(SphericalAtlas.GetData(), SphericalAtlas.GetAllocatedSize(), SphericalAtlasWidth, SphericalAtlasHeight, ERGBFormat::BGRA, 8);
    const TArray<uint8>& PNGData = ImageWrapper->GetCompressed(100);
    FFileHelper::SaveArrayToFile( PNGData, *AtlasName );

    这几行代码就是控制左右眼输出的,如果我们定义的CombineAtlasesOnOutput为true,就意味这我们需要合并两张眼睛的图像,那么我们就需要禁掉它(左右单独输出),如果为false则我们需要输出左右眼的单独序列帧,所以就需要执行它。
    综上,可以写一个if语句来判断CombineAtlasesOnOutput的值:

    IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper( EImageFormat::PNG );
    if (!CombineAtlasesOnOutput)
    {
        ImageWrapper->SetRaw(SphericalAtlas.GetData(), SphericalAtlas.GetAllocatedSize(), SphericalAtlasWidth, SphericalAtlasHeight, ERGBFormat::BGRA, 8);
        const TArray<uint8>& PNGData = ImageWrapper->GetCompressed(100);
        FFileHelper::SaveArrayToFile(PNGData, *AtlasName);
    }

    这样会导致一个错误,因为PNGData是在if的作用域内定义的,如果执行到了if后(被释放掉)或者根本没有执行到(if判断为false(!true))就会导致后面对PNGData的使用造成错误。
    在上面if语句之后的代码块中对PNGData的使用处为:

    if (FStereoPanoramaManager::GenerateDebugImages->GetInt() != 0)
    {
        FString FrameStringUnprojected = FString::Printf(TEXT("%s_%05d_Unprojected.png"), *Folder, CurrentFrameCount);
        FString AtlasNameUnprojected = OutputDir / Timestamp / FrameStringUnprojected;
    
        ImageWrapper->SetRaw(SurfaceData.GetData(), SurfaceData.GetAllocatedSize(), UnprojectedAtlasWidth, UnprojectedAtlasHeight, ERGBFormat::BGRA, 8);
        const TArray<uint8>& PNGDataUnprojected = ImageWrapper->GetCompressed(100);
        // 原来的代码为 FFileHelper::SaveArrayToFile(PNGData, *AtlasNameUnprojected);
        FFileHelper::SaveArrayToFile(PNGDataUnprojected, *AtlasNameUnprojected);
    }

    对禁用左右眼单帧输出部分,如果只写这部分代码,现在再执行采集是不会有任何有意义图像输出的(因为现在已经把左右眼输出禁用了)。下面继续搞将两张合并到一块的方法。
    查找代码:

            TArray<FColor> SphericalLeftEyeAtlas  = SaveAtlas( TEXT( "Left" ), UnprojectedLeftEyeAtlas );
            TArray<FColor> SphericalRightEyeAtlas = SaveAtlas(TEXT("Right"), UnprojectedRightEyeAtlas);

    在其后添加:

    //*NEW* - Begin
    if (CombineAtlasesOnOutput)
    {
        TArray<FColor> CombinedAtlas;
        CombinedAtlas.Append(SphericalLeftEyeAtlas);
        CombinedAtlas.Append(SphericalRightEyeAtlas);
        IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper(EImageFormat::JPEG);
        ImageWrapper->SetRaw(CombinedAtlas.GetData(), CombinedAtlas.GetAllocatedSize(), SphericalAtlasWidth, SphericalAtlasHeight * 2, ERGBFormat::BGRA, 8);
        const TArray<uint8>& PNGData = ImageWrapper->GetCompressed(100);
        // Generate name
        FString FrameString = FString::Printf(TEXT("Frame_%05d.jpg"), CurrentFrameCount);
        FString AtlasName = OutputDir / Timestamp / FrameString;
        FFileHelper::SaveArrayToFile(PNGData, *AtlasName);
        ImageWrapper.Reset();
    
    }
    //*NEW* - END

    此时在VS工程中编译项工程STEREOSCOPIC,并重启UE4编辑器和VS,就会采集并将左右眼合并成一张图片了。
    这里写图片描述

    参考连接:https://imzlp.me/2016/09/05/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4/

    展开全文
  • UE4超简单导出全景图插件

    千次阅读 2018-10-30 16:21:40
    效果如下,上图,(图为笔者在引擎世界发的帖子图) 下面直接分享插件和视频...如果你对Unity,Unreal4,人工智能感兴趣,请关注我的公众号,后续会分享更多好玩的东西,你的一个点赞就是我坚持写下去的动力: ...

    效果如下,上图,(图为笔者在引擎世界发的帖子图)

    下面直接分享插件和视频教程,10分钟学会导出全景图:

    链接:https://pan.baidu.com/s/1CygxweW_o0J_KulQRMHZfQ 密码:1q0s

    如果你对Unity,Unreal4,人工智能感兴趣,请关注我的公众号,后续会分享更多好玩的东西,你的一个点赞就是我坚持写下去的动力:

    展开全文
  • UE4 导出全景

    千次阅读 2019-06-18 18:28:16
    1.自带Stero 转载:... 2.Nivida插件 文档:https://docs.unrealengine.com/zh-CN/Engine/Plugins/Ansel/index.html C:\Program Files\NVIDIA Corporation\An...

    1.自带Stero

    转载:https://blog.csdn.net/zhuxiaoyang2000/article/details/53285209

    2.Nivida插件

    文档:https://docs.unrealengine.com/zh-CN/Engine/Plugins/Ansel/index.html

    C:\Program Files\NVIDIA Corporation\Ansel\Tools\NvCameraConfiguration.exe

    capture 滑动条,滑动到360处(不滑动是没有提示的,这个不人性化,本人找了半天文档都没写,最后在视频中看别人操作才发现,这个一定注意。)

    全景视频的方法:https://www.engineworld.cn/forum.php?mod=viewthread&tid=3210&highlight=%E5%85%A8%E6%99%AF

    3.UE商店中 simple panoramic exporter插件

    4.其他插件

    虚幻中国找到的一个大佬写的

    https://www.engineworld.cn/forum.php?mod=viewthread&tid=6101&highlight=%E5%85%A8%E6%99%AF

    展开全文
  • ue4 导出渲染全景视频序列帧

    万次阅读 2017-08-02 16:29:58
    因为又需要在ue4里面导出全景图片 所以在这里记录下快速导出图片的方式 顺便说一下这个用ue自带的插件导出是立体全景图片,所以会输出左右眼 这里使用的版本是ue 4.16.3 另外导出速度很慢,会一度以为是卡死了,...

    因为又需要在ue4里面导出全景图片

    所以在这里记录下快速导出图片的方式

    顺便说一下这个用ue自带的插件导出是立体全景图片,所以会输出左右眼

    这里使用的版本是ue 4.16.3

    另外导出速度很慢,会一度以为是卡死了,其实并没有卡死,可以看输出目录


    先在项目里勾选插件,切换项目的时候勾上



    上图防止性能造成的掉帧



    这个防止贴图模糊,其他一些防止贴图和渲染异常问题可以看下面的

    http://blog.csdn.net/shenmifangke/article/details/52072969




    然后上面两个

    当然不想输入的可以打开level blueprint  把下面的复制到蓝图里去

    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_22"
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetSystemLibrary',MemberName="ExecuteConsoleCommand")
       NodePosX=224
       NodePosY=-16
       NodeGuid=11178A754D409AB621A487A830D334FA
       CustomProperties Pin (PinId=30971BE3417E9BED6A6ED59AD40C7566,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_Event_0 4DEBACD54F6CDBA70521C5A3703A5E9A,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=8B4F50EB42EBE0647DAE1C8E4F5727FE,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_23 01A6FD42488A91CBE56099BA826CEB3C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=31721CDF4824F2E7CB4D089286DA2A3F,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nKismet System Library Reference",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/Engine.KismetSystemLibrary',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/Engine.Default__KismetSystemLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=AEA672F945920785F2E509A08AF22748,PinName="WorldContextObject",PinToolTip="World Context Object\nObject Reference",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/CoreUObject.Object',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=61ABAE364F5F1F8AD9B59C8E31882A0C,PinName="Command",PinToolTip="Command\nString\n\nCommand to send to the console",PinType.PinCategory="string",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="SP.OutputDir E:/ccccc",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=F19B5D494174445B1306F38A20A1CB03,PinName="SpecificPlayer",PinToolTip="Specific Player\nPlayer Controller Reference\n\nIf specified, the console command will be routed through the specified player",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/Engine.PlayerController',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
    End Object
    Begin Object Class=K2Node_CallFunction Name="K2Node_CallFunction_23"
       FunctionReference=(MemberParent=Class'/Script/Engine.KismetSystemLibrary',MemberName="ExecuteConsoleCommand")
       NodePosX=480
       NodePosY=16
       NodeGuid=61E787F04964F936FB0342AC79CE318A
       CustomProperties Pin (PinId=01A6FD42488A91CBE56099BA826CEB3C,PinName="execute",PinToolTip="\nExec",PinType.PinCategory="exec",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,LinkedTo=(K2Node_CallFunction_22 8B4F50EB42EBE0647DAE1C8E4F5727FE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=2BA80EAA42CBC1A4AF89F296A0226E01,PinName="then",PinToolTip="\nExec",Direction="EGPD_Output",PinType.PinCategory="exec",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=3BF47BE34AF53040ADEF028D2D749950,PinName="self",PinFriendlyName=NSLOCTEXT("K2Node", "Target", "Target"),PinToolTip="Target\nKismet System Library Reference",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/Engine.KismetSystemLibrary',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultObject="/Script/Engine.Default__KismetSystemLibrary",PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=6FC7C43347758A7D138E92951588D28F,PinName="WorldContextObject",PinToolTip="World Context Object\nObject Reference",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/CoreUObject.Object',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=AD9934904A296DC7B4341C94499E5AC5,PinName="Command",PinToolTip="Command\nString\n\nCommand to send to the console",PinType.PinCategory="string",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,DefaultValue="SP.PanoramicMovie 0 60",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
       CustomProperties Pin (PinId=6A188951457AFD3F80FA5786D9B01A62,PinName="SpecificPlayer",PinToolTip="Specific Player\nPlayer Controller Reference\n\nIf specified, the console command will be routed through the specified player",PinType.PinCategory="object",PinType.PinSubCategoryObject=Class'/Script/Engine.PlayerController',PinType.PinSubCategoryMemberReference=(),PinType.bIsArray=False,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,)
    End Object
    
    记得左上角的compile 应该没有问题,比如上面是60帧

    一般只要弄上面的两个就行了,当然测试的时候为了速度可以减小下尺寸

    控制输出图片大小可以再连一个 设置宽度,高度自动是宽度的一半


    记得要把SP.StepCaptureWidth 1024放在前面,这个表示导出的图都是1024×512默认是4096×2048的

    然后就能运行开始录制了,会录制到SP.PanoramicMovie设置的300帧结束



    为了保证恒定帧率 还要以固定帧率打开编辑器

    -usefixedtimestep -fps=60 -notexturestreaming

    上面这句可以加载编辑器的快捷方式里


    一般编辑器位置在

    E:\Program Files\Epic Games\4.13\Engine\Binaries\Win64

    E:\Program Files\Epic Games\UE_4.16\Engine\Binaries\Win64

    这种位置



    中文参考

    https://docs.unrealengine.com/latest/CHN/Platforms/VR/StereoPanoramicCapture/QuickStart/index.html

    其他设置可以参考

    https://docs.unrealengine.com/latest/INT/Platforms/VR/StereoPanoramicCapture/TipsAndTricks/index.html


    各个参数含义可以看这里

    https://docs.unrealengine.com/latest/INT/Platforms/VR/StereoPanoramicCapture/Reference/index.html

    还有一个完整的官方教程

    https://www.unrealengine.com/zh-CN/blog/capturing-stereoscopic-360-screenshots-videos-movies-unreal-engine-4

    展开全文
  • UE4 导出全景图和全景视频

    万次阅读 2017-05-27 12:58:50
    方法1:插件地址:http://download.csdn.net/detail/u014532636/9845636 导入插件后选择这个拖入场景点运行就好了,东西在Save的Panoramas里 ... 基于1的优化,需要1的插件,插件里的XXXcontent文件夹复
  • UE4输出全景图片

    千次阅读 2019-06-10 15:31:44
    方法一 1.开启插件:stereo panoramic capture plugin[0] 2.适当位置写上代码,蓝图 图1 3.play,然后~调出命令行:ce stereo 注意图...
  • ue4 输出360度全景深度图

    千次阅读 2017-12-28 17:41:35
    有时候需要输出全景深度图最为后期处理素材 这样能够多输出视频做更大程度的处理 但是有的全景插件没有办法使用后处理框 或者不受滤镜的影响 这个时候就要使用一个技巧来输出了 这里介绍一种结合simple ...
  • 我的神船烘焙一个坦克大战全景要将近半小时,但是在那么大的图里根本不需要做这个工作!光线可以随时进行渲染!这太吸引人了! 所以最近就开始学ue4啦。主要是给自己记一些笔记。因为用unity3d除了敲代码已经很上手...
  • Unreal播放360度立体视频

    千次阅读 2016-12-09 16:21:46
    Unreal播放上下切割360立体视频,直接上图不废话。
  • UE4全景插件Nvidia Ansel Photography

    千次阅读 2017-04-12 17:50:14
    将 Ansel ue4 插件整合到游戏中的方法简单而快捷。 可在 Nvidia Ansel 站点 查看 Ansel 终端用户总览。 虚幻引擎 4 中可用的 Ansel 功能有: Free Camera - 在拍照前将摄像机调整到最佳角度 ...
  • Unreal Engine自定义skybox,使用cubemap

    千次阅读 2019-06-13 18:36:50
    1.新建BP actor 添加staticmesh组件,设置mesh为SM_SkySphere(包含在Engine Content文件夹) 2.新建材质球 材质类型unlit ...使用TextureSampleParameterCube类型读取cubemap ...核心关键使用reflection vector...
  • 因为打包apk的学习过程中没有看到有哪篇文档是把全部流程完整描述出来的(就是给完完全全纯小白的博客,对...注:我用的UE4版本是4.22.3,以下操作都是在4.22.3版本下操作。 首先 明确所有要做的步骤大致有哪些: ...
  • 如何使用虚幻4来制作一个VR视频播放器呢,简单来讲,使用虚幻4的视频采集插件来获取图像,并对图像进行处理,就能获取我们需要的图像了,下一步,你可以把图像投影到一个360度球体上,就能形成球形的播放器了。
  • [UE4]采集360全景

    2019-06-14 13:06:29
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 通过本课程的学习,大家可以掌握虚幻4在主流VR平台上的开发技术,并能够快速制作属于你自己的VR游戏。
  • UNREAL ENGINE 4.12 正式发布!下载地址

    千次阅读 2016-07-09 11:32:46
    UNREAL ENGINE 4.12 正式发布! Alexander Paschall 在 June 1, 2016 | 功能新闻社区 Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn 此版本内含虚幻引擎 4 的数百个更新,以及 ...
  • UE4 WebBrowser下的URL编码解析成文字

    千次阅读 2018-08-17 16:52:35
    UE4的实验性UWidget----WebBrowser可以很好的模拟网页访问,利用好URLChanged和BeforePopup就能轻松实现一个浏览器,比如像这样。 实际上WebBrowser已经给我们实现了标题栏、地址栏、前进、后退、刷新等一系列...
  • UE4 插件 1分钟完成全景展示项目(Simple panorama player and video player) 全景图、全景视频播放器,附带列表和热点模板。另附带一个视频播放器。全景播放器可以使用本地资源或Web URL。 完全由蓝图实现,易于...
  • GameWorks是英伟达开发的一套闭源的特效以及物理方面的SDK,今天介绍了内容包括Ansel截屏工具,Flow,Physics,VRworks以及HairWorks与WaveWorks。因为GameWorks,AMD与NVIDA还产生了不小的矛盾,两家在网上还公开...
  • 官方文档:https://docs.unrealengine.com/en-us/Engine/Rendering/VisibilityCulling View Frustum View Frustumculling uses the visible screen area of the camera’s field of view (FOV) to cull objects ...
1 2 3 4 5 ... 12
收藏数 231
精华内容 92
关键字:

unreal4 全景