Blender使用Python QM渲染复杂字体

Blender使用Python QM渲染复杂字体,python,graphics,python-imaging-library,rendering,blender,Python,Graphics,Python Imaging Library,Rendering,Blender,我试图在blender中正确渲染孟加拉语字体,但渲染不正确。我在尝试使用python在图像上绘制孟加拉语文本时遇到了同样的问题。我发现枕头可以做到这一点,但它不像英文文本那样直截了当。通过下面的两个链接,我可以让它正常工作 这些是不使用和使用libraqm的结果 不正确 对的 这是基本代码, from PIL import ImageFont, ImageDraw, Image import numpy as np import matplotlib.pyplot as plt ima

我试图在blender中正确渲染孟加拉语字体,但渲染不正确。我在尝试使用python在图像上绘制孟加拉语文本时遇到了同样的问题。我发现枕头可以做到这一点,但它不像英文文本那样直截了当。通过下面的两个链接,我可以让它正常工作

这些是不使用和使用libraqm的结果

不正确

对的

这是基本代码,

from PIL import ImageFont, ImageDraw, Image
import numpy as np
import matplotlib.pyplot as plt

image = np.zeros((200, 600, 3), np.uint8)
image = Image.fromarray(np.uint8(image * 255))

draw = ImageDraw.Draw(image)

# use a truetype font
font = ImageFont.truetype("/content/BalooDa2-Medium.ttf", 24)

draw.text((20, 25), "আমাদের দেশের ক্রিকেটাররা এখন টেস্ট খেলায় জিততে জানে", font=font)
draw.text((20, 50), "গরমে সুস্থ থাকুন", font=font)

plt.figure(figsize = (20,20))
plt.imshow(image)
完整的脚本在这里

在blender中使用自定义孟加拉语字体会产生这样的错误结果

我想知道如何在blender with text中实现与libraqm相同的功能。有没有办法安装libraqm with pillow,以便在blender中正确渲染字体?有没有其他办法?

编辑: 事实证明Blender2.92已经包含了路径跟踪。在视口中拖放图像,然后
对象>将图像跟踪到油笔
在选定对象上可以跟踪可拉伸到任何高度要求的路径,以生成三维文本

尽管输出跟踪中存在一些可见的问题,如下所示

来源:


黑白图像可以使用位图跟踪器进行跟踪,以转换为
svg路径
。Inkscape能够做到这一点,并且可以将其导出到blender。我找到了一个暂时的解决办法

我仍然更喜欢这样一个答案,即删除黑色像素(或反转),并沿Z轴将白色像素挤出到给定高度,以使用python创建网格,而不使用类似Inkscape的东西。为此,我目前的想法是使用python获取轮廓,以某种方式将其保存为矢量路径,保存为svg,最后加载到blender中

根据位图跟踪找到此非基于ML的纸张

我还发现了另外两种使用高度渲染字体的方法,但这不是我喜欢的方法。一个是使用
bump
,另一个是使用
displacement+bump
。使用“凹凸”不会提供适当的高度,但从远处看效果很好,可以获得正确的阴影

要使用
displacement+bump
或仅使用
displacement
需要对平面进行细分,以获得适当的高度,并使用搅拌器循环获得较好的效果。黑白掩模图像应作为图像纹理,采用三次插值的方法来改善结果