- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 3D 世界中绘制 Slick 的字体(UnicodeFont),该字体只能通过 drawString()
绘制,它只提供 x 和 y?
我已经尝试过这个:
public void drawHudString(float _posX, float _posY, String _text, UnicodeFont _font, Color _color) {
glPushMatrix();
glRotatef(cam.rotX, -1.0f, 0.0f, 0.0f);
glRotatef(cam.rotY, 0.0f, -1.0f, 0.0f);
glRotatef(cam.rotZ, 0.0f, 0.0f, -1.0f);
glTranslatef(-cam.posX, -cam.posY, -cam.posZ + 20);
_font.drawString(_posX, _posY, _text, _color);
glPopMatrix();
}
但文本不是displayex。如果不使用 glRotatefs
和 glTranslatef
,则文本将由 3D 世界 coords
最佳答案
Slick 的字体渲染基于 OpenGL 的即时模式。这意味着 drawString
的行为由当前状态决定,换句话说,由当前的 GL_PROJECTION
和 GL_MODELVIEW
矩阵决定。
您的问题并没有真正弄清楚您是否想要将文本绘制为 2D 覆盖(可能在屏幕坐标中)或真正嵌入 3D 空间的透视。不过,您可以使用drawString
来实现这两个目的。 drawString
在 z=0 平面中指定的 x/y 坐标处渲染字体纹理。在 drawString
中,约定是假设左手坐标系,并且纹理从 z 轴负方向可见。这种约定的原因可能是 OpenGL 对窗口空间使用左手坐标系,而对世界/对象空间使用右手坐标系 ( see this answer for a good explanation )。因此,使用 Slick 进行 2D 渲染非常简单:设置一个典型的正交投影矩阵(如 ryuyah2000 所建议的),然后就可以开始了。
如果您想在 3D 空间中渲染,则可以保留常规透视投影矩阵(即,您使用与渲染世界相同的投影)。为了控制 3D 空间中文本的位置,您必须相应地设置模型 View 矩阵(即,在要渲染文本的平面中对齐 z=0 平面)。由于左手和 z 可见性约定,您可能必须将 z 轴旋转 180°,并且必须反转惯用手(只需将模型 View 缩放 -1)。如果您执行了其中一个步骤错误,则您的文本要么不可见(= 查看错误的 z 侧),要么从右向左书写(= 错误的惯用手)。 Slick 的 drawString
方法使用字体纹理的 1 个单位 = 1 个像素的缩放比例,因此您必须应用适当的缩放比例以使其与您的世界单位相匹配。
关于java - LWJGL:Slick:在 3D 世界中绘制字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20788163/
这是非常非常令人沮丧的。一段时间以来,我一直在尝试使用 Slick,但障碍不断涌现。 Slick 的概念真的很棒,但是很难学,而且不像Scala,它没有“初学者”、“中级”和“高级”风格,各个阶段的人
我在 Event 上定义了一个可选的外键,它转到 EventType。我想查询所有事件,即使是那些具有 None (null) 事件类型的事件。这是在 Event 上定义的外键。 def eventT
Another question通过在“一”案例类 (Directorate) 中定义一个返回“多”类的 Seq 的方法来回答如何定义一对多关联(服务区)。但它没有解决问题的“双向”部分。 使用该示例
我有一个向表中添加日期列的要求,默认值是由 oracle 的 sysdate 设置的,如下所示 例子{...CREATED_ON DATE 默认系统日期 我想使用 slick table ddl 创建
当我设置 speed: 1000 , pauseOnHover工作正常,但一旦我将其设置为 speed: 10000 , pauseOnHover不能立即工作 - 它在几秒钟后工作。 代码: $('#
我正在 try catch Slick 3.x 中的 SQL 错误。下面的代码不打印任何内容,但如果在调试下跟踪,它工作正常(它打印失败)。这段代码有什么问题? object TestSlick ex
我正在 try catch Slick 3.x 中的 SQL 错误。下面的代码不打印任何内容,但如果在调试下跟踪,它工作正常(它打印失败)。这段代码有什么问题? object TestSlick ex
我一直在使用 Slick's insertOrUpdate since its release in 2.1版本没有任何问题。 现在我正在尝试提高我的代码性能,而 insertOrUpdate 是瓶颈
我有一个列类型为日期的表。此列接受空值,因此,我将其声明为一个选项(请参阅下面的字段 perDate)。问题显然是从/到 java.time.LocalDate 的隐式转换/java.sql.Date
我试图在拖动幻灯片时向 a 标签添加“slick active”类。该类在单击时应用,但无法弄清楚如何将其应用到其他类! 如果能帮助破译我的代码,我们将不胜感激! JS $(document).rea
我有透明背景的 slider ,我想在悬停中心 div 时为 slider 背景制作动画,但在 slider 移动后,悬停效果会卡在所有以前具有“光滑中心”类的幻灯片上。任何建议如何解决它? Sp 到
我使用 Slick 3.1 代码生成器来创建默认对象和特征 Tables.scala 下面的方法有效,但我想隐式或显式地将 UserRow 和 PasswordsRow 转换为 User 和 User
我正在使用 Slick Slider 和 Slider Syncing 选项。是否可以滚动“缩略图”(示例中为 .slider-nav)而不更改主图像(示例中为 .slider-for)? 我只想在您
似乎 vue-slick 还没有提供任何事件(afterChange、beforeChange、Swipe...)。就像 jQuery 版本一样。 我应该使用 MutationObserver 来监听
问题 我正在 WordPress 网站上设置一个灵活的 slider /轮播。一切工作/显示都很完美,但是 slider 已停止正确拖动。 我仍然可以用鼠标物理拖动 slider ,它会按应有的方式进
我正在尝试使用 slick 库实现 slider 同步。我有一组来自后端的名为 pictures 的图像。我遍历这些图像,将它们填充到我的 slider-for 和 slider-nav div 下。
不知何故,我无法正确使用 slick carousel ( http://kenwheeler.github.io/slick/ )。 我收到以下错误: Uncaught TypeError: $(.
我正在使用 AOS 在滚动条上显示 html 元素。它单独运行良好,但当我在包含 Slick slider 的页面上使用它时,应用 AOS 的元素不显示。元素被隐藏,如果有很多滚动,看起来浏览器向 A
我正在使用 AOS 在滚动条上显示 html 元素。它单独运行良好,但当我在包含 Slick slider 的页面上使用它时,应用 AOS 的元素不显示。元素被隐藏,如果有很多滚动,看起来浏览器向 A
在我测试slick.js 前端 slider 插件时,我发现在Chrome 浏览器中,有时导航点在class ".slick-dots li button:before" 突然变了 来自 内容:'•'
我是一名优秀的程序员,十分优秀!