首页 > 解决方案 > 如何在 Unity、Unreal 等游戏引擎中或直接在 webXr 中实时导出从 Grasshopper、Rhino3d 分析的顶点颜色?

问题描述

我对这个社区很陌生。

我想知道如何从 Grasshopper/Rhino 3D 导出​​ Karamba 的顶点颜色、瓢虫的分析(颜色映射),以创建 AR 应用程序(具有统一、虚幻或其他)?

我正在尝试可视化分析,我从其他蚱蜢插件(如瓢虫、karamba、蜜蜂、蝴蝶)在 Rhino 中烘焙,统一或不真实。而且,我想更深入地了解纹理、材质和着色器如何在 GPU 中的 Rhino 和 Unity 中工作。

标签: c#unity3dgrasshopperrhino3d

解决方案


Rhino6 支持导出顶点颜色,您也可以使用来自 Antonello di Nunzio 的 Ladybug Texture Mixer 来完成这项工作,将颜色顶点替换为纹理和材质。

def makeTexture(size, colorTree):
    sb = size * 2 - 1
    bm = System.Drawing.Bitmap(size * 2, size * 2)
    bmb = System.Drawing.Bitmap(size * 4, size * 4)

    count = -1
    for x in xrange(size):
        for y in xrange(size):
            count += 1
            if count < len(colorTree):
                bm.SetPixel((x * 2) + 0, sb - ((y * 2) + 0), colorTree[count][0])
                bm.SetPixel((x * 2) + 1, sb - ((y * 2) + 0), colorTree[count][1])
               bm.SetPixel((x * 2) + 1, sb - ((y * 2) + 1), colorTree[count][2])
                bm.SetPixel((x * 2) + 0, sb - ((y * 2) + 1), colorTree[count][3])

    g = System.Drawing.Graphics.FromImage(bmb)
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor
   g.DrawImage(bm, 0, 0, size * 4 + 1, size * 4 + 1)

    return bmb

推荐阅读