【问题标题】:Render DMD in Unity3D在 Unity3D 中渲染 DMD
【发布时间】:2017-02-24 11:21:45
【问题描述】:

我想通过仿真呈现自定义显示。像弹球机的点阵显示器一样思考。

我将如何有效地解决这个问题? (考虑实际写入大小可能会运行得太慢的纹理)

必须有一种很好的方法来渲染它,但我很难找到一种实际上也能正常执行的方法。

【问题讨论】:

    标签: c# unity3d render


    【解决方案1】:

    有很多选项可以做到这一点,但没有更多细节(DMD 屏幕分辨率、颜色数量、动画与否等)很难提供帮助。这里有一堆选项突然出现在我的脑海中,希望你正在寻找的选项在这里的某个地方:)

    1) 有一个类似的问题,你可以找到它答案here

    2) 如果您只想显示文本,有很多网站免费提供 DMD 字体,例如here

    3) 您还可以编辑/扩展您下载的字体集并将“特殊字符”显示为图形,或者仅使用标准 ASCII table这足以满足您的需求。例如▓ █ ╔ ═ ╗ 和类似的“绘图字符”
    您可以找到灵感和 ASCII 艺术(包括动画艺术),例如here

    4) 可能会很慢(同样,“取决于”),但您可以使用位图和 .SetPixel<strong>s</strong> 以及 Texture2DDrawTexture

    5) 有点“hacky”,但您可以将动画阶段保存到位图数据/数组(例如只读/常量变量,或以托管方式从磁盘读取) ,或借助商店中的免费资产(如this one here 等)进行绘制,然后执行Graphics.DrawTexture

    6) 如果您要显示的内容是 100% 静态的(即,它不是像分数这样的实际数据,而是像“TILT”文本等“硬编码”动画),您可以创建一个Sprite Animation

    7) 您可以混合使用上述内容,例如使用字体 (#2) 在画布上显示动态数据,并在其周围播放静态动画,使其看起来像是动态的


    嗯。这一切都在我的脑海中:)
    希望这会有所帮助!

    【讨论】:

    • 大部分都不适用。我正在尝试做 DMD,但从仿真中进行,1 个点将是 1 个像素(足够接近)。所以我不知道着色器,但我认为 setpixels 太慢了。 Graphics.DrawTexture 可以不使用运行时生成的缓冲区吗?
    猜你喜欢
    • 2020-07-29
    • 2017-02-10
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 2015-11-09
    • 2018-03-10
    相关资源
    最近更新 更多