精华内容
下载资源
问答
  • 使用SunSky Actor 将光照设置成与现实相符的参数。步骤下载地形高度数据在这个网站上 https://terrain.party/ 选取需要的地图区域,并下载。可以选择截取范围。这里以8km 为例。地图命名为xxx。下载后的压缩包里有.....

    020cdafe93bfe162d3f36222c9068099.png

    目标

    尽量1:1 还原现实地形效果。(可以做景区或建设规划展示用)

    策略

    • 从网上获取地图高度信息,导入到UE4 的landscape 中。并计算出正确的导入参数。
    • 使用SunSky Actor 将光照设置成与现实相符的参数。

    步骤

    下载地形高度数据

    在这个网站上 https://terrain.party/ 选取需要的地图区域,并下载。可以选择截取范围。这里以8km 为例。地图命名为xxx。

    下载后的压缩包里有个xxx README.txt,其中包含重要信息。当前目标下,其中这些信息有用:

    • 告诉你通常来说请用 xxx Height Map (Merged).png 这张地图
    • 告诉你地图的高度区间。在“Elevation Adjustment”那一节的第一句。本例中是这样的“The original elevation models for this area contained elevations ranging from 3304 through 4005 meters.”,意思是说这个地图数据的海拔高度范围是 3304米~4005米。
      • 注意:你截取的数据中,不一定是3304 和4005 这个数据。
    • 后面一堆文字解释了图片数据的意义。翻译成人话:
      • 这个图片中的纯黑像素与纯白像素表示的高度差是1024米。
      • 这个图片中的纯黑像素表示的海拔高度是 3304米 - 40米 = 3264米。注意:
        • 你截取的数据中,不一定是3304 这个数据。
        • 3264 这个数据是算出来的,原文中并没有出现。

    旋转图片

    导入之前,需要把图片顺时针旋转90°。为什么?因为这样导入UE4 之后的东西南北方向,刚好符合“Sun and Sky Actor” 的东西南北方向。

    导入Landscape

    5681de7d37d3842bec4be5dfe88c6366.png

    使用New Landscape 工具,并选择Import from file,选择下载到的 xxx Height Map (Merged).png。

    这时候面板下面的 Section Size, Section Per Component, Number of Component, Overall Resolution 数据会自动调整。

    这里面最有用的数据是Overall Resolution。它为什么是 1135 * 1135?因为导入的图片分辨率是 1081*1081。UE4 选择了尽可能小的Section Size, Section Per Component, Number of Component 参数, 让 Overall Resolution 比1081*1081 刚好稍大一些。

    调整Landscape 创建参数

    为了让landscape 刚好能1: 1 比例还原现实。需要调整Location 和 Scale 数据。

    • Scale z,直接设置成200。
      • 经测试,默认100 的缩放会让纯黑和纯白数据有51200 单位的高度差,即512米。所以200 的缩放,刚好符合地形数据的纯黑混白 1024 高度差。
    • Locatoin z,在本例中设置成 3264米 + 1024/2 米 = 2752米,即275200 单位。
      • 3264米是前面计算出来的,地形图的纯黑表示海拔 3264米。
      • 加上1024/2 米是因为landscape 的pivot 在纯灰高度处。
    • Scale xy,在本例中设置成 8000 米 / (1081 - 1) 米 * 100 = 740.74
      • 经测试,如果按Scale xy默认设置100,而Overall Resolusion 为1135 那么landscape 的边长是1134 米(113400 单位)。
      • 有效地形数据边长实际只有1081 像素,那么如果按Scale xy默认设置100,那么有效地形的边长应该有1080 米(108000 单位)。
        • 有效数据的边长只有1081,而Overall Resolusion 为1135,上面已经解释过原因。UE4 会把多出来的数据填充上无用数据。 我们只考虑中间有效数据的正确缩放。
      • 而数据实际表示的是8km 边长的范围。所以Scale xy 应该修改为 8000 米 / 1080 米 * 100 = 740.74
    • Location xy。设置多少无所谓,没有真实数据对应的方法。

    点击“Import”用这些设置创建landscape,就可以得到一个比例和真实世界一样,海拔高度也和真实世界一样的地形了。

    设置光照

    把场景中旧的光源相关Actor 去掉,添加SunSky。

    10c3e06ff030c00679aa9313d7761a78.png

    然后设置正确的经纬度、时区、日期、时间,就可以得到非常正确的光照了。

    2ef3b41f61707851b7d698aeb7950bd8.png

    SunSky Actor 并没有提供雾效。需要添加Exponential Height Fog 来产生雾效。调整SunSky 中的SkyAtmosphere 的 Aerial Pespective View Distance 可以调整雾的浓度。

    效果

    简单加了一些水和光照烘焙,凑合一下。

    dec8957500fbaa79e103426900905835.png
    会了这招,至少再也不用担心场景比例不对了
    展开全文
  • 可能很多同学在阅读Python源...当Python解析器读源代码文件时,会做如下两件事情:设置特殊变量,如__name__;执行源代码文件中的所有代码;现在我们将焦点放到__name__变量上来,看看在Python程序中为什么要使用...

    可能很多同学在阅读Python源代码时会发现经常会出现if __name__ == '__main__':这样的代码,那么这样的代码起到什么作用呢?本文将为你深入解析__name__变量的含义和应用场景。

    当Python解析器读源代码文件时,会做如下两件事情:

    设置特殊变量,如__name__;

    执行源代码文件中的所有代码;

    现在我们将焦点放到__name__变量上来,看看在Python程序中为什么要使用__name__变量。

    让我们先使用一段代码示例来探索导入和脚本的工作方式。假设这些代码位于名为foo.py的文件中。

    print("before import")import mathprint("before functionA")def functionA():print("Function A")print("before functionB")def functionB():print("Function B {}".format(math.sqrt(100)))print("before __name__ guard")if __name__ == '__main__':functionA()functionB()print("after __name__ guard")

    当Python解释器读取源文件时,它首先定义一些特殊变量。在这个案例中,我们关心的是__name__变量。如果将Python脚本文件作为主程序运行,也就是通过下面的命令运行foo.py。

    python foo.py

    Python解释器会使用下面的代码为__name__变量赋值,也就是说,__name__变量的值是"__main__"。

    __name__ = "__main__"

    另一方面,假设其他模块是主程序,并且它将导入foo.py。这意味着在主程序中会有如下的语句:

    import foo

    Python解释器将搜索foo.py文件(以及搜索其他一些变体),在执行该模块之前,它将从import语句中将名称“ foo”分配给__name__变量,也即是使用下面的代码为__name__变量赋值。

    __name__ = "foo"

    设置__name__变量后,Python解释器通过一次执行一条语句的方式执行模块中的所有代码。您可能想要在代码示例侧面打开另一个窗口,以便您可以按照以下说明进行操作。

    现在执行前面的代码,会输出如下内容:

    before importbefore functionAbefore functionBbefore __name__ guardFunction AFunction B 10.0after __name__ guard

    如果当前的Python脚本按着主程序的方式执行(使用python命令),那么__name__变量的值就是"__main__"。这样就会调用functionA和functionB函数,从而输出"Function A"和"Function B 10.0"

    如果foo.py脚本不是作为主程序运行,而是被另一个程序导入,则__name__变量的值是“ foo”,而不是“ __main__”,在这种情况下,将不会调用functionA和functionB函数。不过在这种情况下,仍然会输出"after __name__ guard",因为这条语句不属于if语句。

    现在总结一下:

    根据foo.py的运行方式,可能会有两种输出结果。

    (1)作为主程序运行,会输出如下结果

    before importbefore functionAbefore functionBbefore __name__ guardFunction AFunction B 10.0after __name__ guard

    (2)作为模块被导入,会输出如下结果:

    before importbefore functionAbefore functionBbefore __name__ guardafter __name__ guard

    可能有很多同学会有这样的疑问,为什么Python要提供这个功能呢?像C#、Java这样的编程语言并没有这样的功能啊!其实这要从Python脚本的运行机理谈起。如果Python脚本作为主程序执行,这个执行方式与Java类似。不过当导入一个Python模块就不一样了。对于Java语言,导入一个包,也只是导入而已,除非显式调用包中的API,否则单单导入,是不会执行Java代码的。但Python就不一样了,如果使用import语句导入一个模块,其实是先执行被导入模块中的所有代码,然后才会执行当前模块的代码。例如,下面的代码,会先执行foo.py脚本中的代码,然后才会执行print('current module')

    import fooprint('current module')

    执行这段代码,会输出如下的内容:

    before importbefore functionAbefore functionBbefore __name__ guardafter __name__ guardcurrent module

    如果一个Python脚本,同时即可以作为主程序执行,也可以作为模块被导入,这就要求在模块被导入时不执行作为主程序执行时的代码,所以如果是在主程序中执行的代码,如果使用__main__变量进行判断。

    关于__name__的一些疑问

    有的同学问,在脚本文件中可以有多个__name__校验代码块吗?其实通常只有一个__name__校验代码块吗,但Python解析器并不会阻止你编写多个__name__校验代码块吗。

    下面再给大家2段代码,看看输出结果会是什么:

    # foo2.pydef functionA():print("a1")import foo2print("a2")functionB()print("a3")def functionB():print("b")print("t1")if __name__ == "__main__":print("m1")functionA()print("m2")print("t2")

    在这段代码中导入了模块本身(foo2.py),执行代码,会输出如下结果:

    t1m1a1t1t2a2ba3m2t2

    大家可以分析一下这段代码的执行过程。下面将if __name__ == "__main__":去掉,看看会发生什么。

    # foo3.pydef functionA():print("a1")import foo3print("a2")functionB()print("a3")def functionB():print("b")print("t1")print("m1")functionA()print("m2")print("t2")

    执行这段代码,会引起死循环吗?其实是不会的,因为Python解析器有缓存,如果一个模块在当前模块中已经被导入了,当第二次导入时,将不会再次执行被导入模块的代码,而是直接使用缓存中的内容,所以import foo3只会导致foo3.py文件中的代码作为导入模块的方式被执行一次。所以执行这段代码,输出结果如下:

    t1m1a1t1m1a1a2ba3m2t2a2ba3m2t2

    大家可以自己分析一下程序的执行过程。

    关注「极客起源」公众号,加星标,不错过精彩技术干货

    展开全文
  • [易飞]设置导入导出规则-小BUG

    千次阅读 2014-01-08 12:03:15
    易飞系统在系统设置中-有设置导入导出规则,进行数据导入导出。 测试一:导入录入交易对象。从A账套导出到B账套,OK没有问题。...2 5 6 7 代表什么意思呢?查看下ADMMB 数据表 维护 单档 双档 多档 可以开窗,其它的

    易飞系统在系统设置中-有设置导入导出规则,进行数据导入导出。

    测试一:导入录入交易对象。从A账套导出到B账套,OK没有问题。

    测试二:设置采购单单据性质。

    导出结果:

    怎么回事?把所有单据性质都导出了吗?


    如果有问题就不应该开窗让用户选择的,那我们来看看开窗吧。

    2 5 6 7 代表什么意思呢?查看下ADMMB 数据表

    维护 单档 双档 多档 可以开窗,其它的不允许设置成导入导出规则。

    那我们来查看下PURI04程序,竟然是单档,结果自然可以看到了。


    去问问400,回答是出货的时候各个模块没统一,正常情况下应该是设置的。

    让我自己手动改!

    这里请鼎捷严谨点吧。


    展开全文
  • 如果你有信产部的接口(100万注册资金以上的有ICP证的公司可以去信产部申请),可以在平台,备案管理,导出为excel后,导入信产部数据库备案,如果没有ICP,只能要求用户自己备案,不能选集中备案。
  • 设置table_exists_action=replace意思是:存在该表的话,先drop再插入数据, 所以有我要执行的表的话应该是正常情况吧,但是为什么会报错呢。 执行语句为: ``` impdp atomic/******** directory=DATA_PUMP_DIR...
  • Python模块中还提供可另外一种类似白名单的机制来控制导入的成员,这个机制就是在模块中定义__all__变量,将__all__的值设置成一个列表,只有列表中的模块成员才能被导入。二、方法介绍在模块内部定义一个模块内的...

    一、引言

    《第10.4节 Python模块的弱封装机制》介绍了Python模块的的弱封装机制,除了使用弱封装机制来从一定程度上防止导入特定成员外,Python模块中还提供可另外一种类似白名单的机制来控制导入的成员,这个机制就是在模块中定义__all__变量,将__all__的值设置成一个列表,只有列表中的模块成员才能被导入。

    二、方法介绍

    在模块内部定义一个模块内的全局变量__all__,其元素是每个需要允许导出的成员名字符串。

    all = [‘成员名1’,…,‘成员名n’]

    三、案例

    1、我们定义一个imptest模块,包括三个成员变量和5个成员函数,内容如下:

    #imptest.py

    __all__=['f','_f1','var2','_var3']

    var1,var2,_var3='imptest var1','imptest var2','imptest _var3'

    _var2

    def f():

    print("execute ftest function in imptest....")

    def _f1():

    print("execute _f1(单下划线开头) function in imptest....")

    def __f2():

    print("execute __f2(双下划线开头) function in imptest....")

    def __f3__():

    print("execute __f3__(双下划线开头结尾) function in imptest....")

    def f4():

    print("execute f4 function in imptest....")

    print("Now in imptest module!")

    2、使用“from 模块名 import *”导入imptest模块的成员并执行验证是否导入成功

    >>> from imptest import *

    Now in imptest module!

    >>> var1

    Traceback (most recent call last):

    File "", line 1, in

    var1

    NameError: name 'var1' is not defined

    >>> var2

    'imptest var2'

    >>> _var3

    'imptest _var3'

    >>> f()

    execute ftest function in imptest....

    >>> _f1()

    execute _f1(单下划线开头) function in imptest....

    >>> __f2()

    Traceback (most recent call last):

    File "", line 1, in

    __f2()

    NameError: name '__f2' is not defined

    >>>

    执行截图:

    从上述执行情况来看,只有在__all__列表中的成员才能通过“from imptest import *”导入,带下划线的也会正常导入,没有在__all__列表中的成员计算无下划线开头也不能导入。

    3、直接使用“import 模块名”导入

    源代码:

    >>> import imptest

    Now in imptest module!

    >>> imptest.f()

    execute ftest function in imptest....

    >>> imptest._f1()

    execute _f1(单下划线开头) function in imptest....

    >>> imptest.__f2()

    execute __f2(双下划线开头) function in imptest....

    >>> imptest.__f3__()

    execute __f3__(双下划线开头结尾) function in imptest....

    >>> imptest.var1,imptest.var2,imptest._var3

    ('imptest var1', 'imptest var2', 'imptest _var3')

    >>>

    执行截屏:

    从上述执行情况来看,使用“import 模块名”导入后,所有成员都可以正常访问,不受__all__列表的影响。

    四、总结

    使用__all__定义模块访问白名单:

    只对“from 模块名 import *”导入产生影响,对“import 模块名”或“from 模块名 import 成员名”不产生影响;

    在__all__列表中的元素不论是否带下划线开头,“from 模块名 import *”都会导入,不受模块的缺省封装机制影响,可以说这是另一种方式的封装;

    在模块定义__all__变量后,可以使用“模块.__all__”查看模块建议使用的模块成员。

    __all__变量可以认为给模块定义了一个开放的公共接口。通常来说,只有__all__变量列出的模块属性,才是该模块建议外界使用的。因此,为一个大模块定义__all__ 变量,就可以给调用程序建议过滤不需要使用的变量、函数和类,只使用__all__定义的白名单属性。

    前面章节介绍过 dir(模块名)可返回模块或类所包含的全部程序单元(包括变量、函数、类和方法等),但直接使用 dir() 函数默认会列出模块内所有的属性,包括以下划线开头的属性,如果模块定义了__all__ 变量,则建议调用者只关注__all__ 变量限定的属性。

    展开全文
  • 可能很多同学在阅读Python源代码时会发现经常会出现if __name__ == '__main__':这样的代码,那么这样的代码起到什么作用呢?本文将为你深入解析__name__变量的含义和应用场景。当Python解析器读源代码文件时,会做...
  • 任何一张图片导入到Unity3D中,都会有个设置面板,里面可以设置一些参数,但是具体里面的参数是什么意思、有什么作用可能不太清除。网络上关于这个面板的参数设置都是些只言片语,不系统,只知道部分参数怎么调,也...
  • c语言中\t是什么意思_后端开发C语言的【\t】代表的意思是水平制表符,相当于按了键盘上的TAB按键,通常宽度相当于8个空格的位置,但有些软件允许设置tab的宽度,在双引号或定界符表示的字符串中有效,在单引号表示的...
  • 可能很多同学在阅读Python源代码时会发现经常会出现if __name__ == '__main__':这样的代码,那么这样的代码起到什么作用呢?本文将为你深入解析__name__变量的含义和应用场景。当Python解析器读源代码文件时,会做...
  • idea里面java类显示为灰色是什么意思,如下是解决步骤: 第一步 找到父项目,点击右键,选择Open Module Settings 2. 打开设置,点击绿色的+ 3. 点击import module,找到显示为灰色的module模块,找到灰色module的...
  • https://www.jb51.net/article/139587.htmpython爬虫浏览器伪装1.#导入urllib.request模块import urllib.request#设置请求头headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML...
  • __package__有三种可能的值类别包名称(字符串)空字符串无包装名称也就是说,如果模块位于包中,则__package__将设置为包名称以启用显式相对导入。Specifically:When the module is a package, its _...
  • 具体如下:flask框架 视图函数当中 各种实用情况简单配置1 建立连接2 路由参数3 返回网络状态码4 自定义错误页面5 重定向6 正则url限制 和 url 优化7 设置和获取cookie#coding:utf8# 导入flaskfrom flask import ...
  • 点击上方“中国统计网”设置星标哦!Numpy是Python做数据分析所必须要掌握的基础库之一。以下为入门Numpy的100题小练习,原为github上的开源项目,由...1. 导入numpy库并简写为 np (★☆☆)(提示: import … as …)...
  • 文章目录一 代码样例二 运行代码2.1 作为主程序运行2.2 作为导入的模块运行2.3 执行foo.py文件中的代码为什么这样工作? 每当Python解释器读取源文件时,它都会做两件事: 它设置了一些特殊变量,例如__name__,...
  • ---官方教程学习笔记图01把建筑室内模型导入到UE4场景中,默认的情况如图01,在这个场景中只使用了定向光源(Light Source)来照明,墙壁与地板之间有明显的漏光,阴影生硬不真实。我们可通过以下方法来进行光照效果...
  • 导入时报ORA-39095错误

    2013-08-14 16:09:30
    大概意思就是说没办法扩展出8KB空间,这个问题很奇怪,我的空间和权限都没有什么问题。  百度解释: 因为设置参数parallel大于转储文件数目引起的,官方文档的解释是parallel io server processes写文件不能同时...
  • CSVDE批量导入域用户

    2016-11-23 10:11:11
    保存成CSV格式,前面的参数我想不需要我多说什么,看单词的意思都应该明白,要说的就是最后一个UserAccountControl,由于CSVDE不能设置密码,因此建议使用514,禁用账户;2、在powershell或者cmd中输入:...
  • 1. R.文件错误问题 ...这个异常的意思是对资源合并发生错误,那就是我使用的图片资源有问题,我使用的图片是能在android环境自适应展示的.9.png格式,在Eclipse上使用是能通过编译的,但是为什么在androi
  • 然后写了第一个demo后发现倒不如不了自己写的包,然后翻回头才看gopath结构如下bin为生成的可执行文件pkg为编译好的文件src为项目源码文件之前做java项目都会设置个workpath工作目录,其实这个src跟这个是一个意思,...
  • (其实这个程序的核心部分我也只是知道单独行的意思,整体的功能实现并不是太确定)求哪位好心人帮忙给讲一下怎么对导入的数据进行处理。自己的水平实在是不够了。 谢谢了。 #include #include #include int...
  • 自动导包是什么意思? 原本我们在eclipse中,如果要引用一个方法,发现缺少这个方法所需要的包,需要手工去输入。 比如我们要用到FileInputStream流,需要在前面输入import java.io.* 而在IDEA中,通过简单的设置...
  • 我的意思是想说,如果DGV还没有导入数据,那么下面针对DGV的操作(修改)的文本框或者按钮或者其他什么的都是灰色的(也就是不可操作的,不知道怎么讲比较专业..)当DGV中有导入的数据时 这些按钮或者文本框才可以...
  • 这个仓库是做什么用的? 这是python代码,可用于动物行为分析和动物电生理学(ECoG和峰值)分析。 该代码旨在在python 3.5上运行,尽管尚未实现python 3特定的代码。 如何设置? 您需要具有不同脚本导入的所有必需...
  • 什么是vue-i18n i18n是 Internationalization 这个英文的简写,即国际化的意思,vue-i18n是一款针对于vue开发的国际化插件,让项目支持多语言切换,以适应不同地区用户的需求。 安装vue-i18n 直接在项目中执行安装...
  •   本项目没有自己搭建后台,所以自然不会有什么服务器数据库,数据来源于和风天气API,不了解的可以看看我的博客文章,也可以先通过二维码或者下载链接去下载APK体验,使用过程中有问题可以在GitHub上提出,或者在...
  • 出现这个报错,一般是有两种情况;...这个是什么意思呢,就是说你之前导入的模块是过期的,在你修改完成后,你应该重新导入一下你修改后的celery实例。最简单的方法,关闭当前python环境重新打开重新导入: ...
  • 先上图,看看是不是跟我相同的...查看一下mysql中设置的是什么路径 使用show variables like '%secure%'; 能看到允许导出导入目录的值为NULL,这个意思就是不允许导入和导出 现在打开配置文件。 添加一条 [m...

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

导入设置什么意思