我需要使用某些透明颜色进行 OpenGL 纹理处理

发布于 2024-11-07 16:37:03 字数 468 浏览 0 评论 0原文

尽管如此,我仍在使用 OpenGL 1.x; 我可以在 OpenGL 中 blit 24 位 targa 图像。假设我有一个 targa 文件,上面有一个怪物。 它的背景是蓝色的。我怎样才能丢弃这个蓝色信息呢?

另一种选择:我知道 NeHe 教程中的第 32 课使用了 32 位 targa,是的,我可以在我的应用程序中显示它。这里出现了一个新问题:如何创建某些区域透明的32位TGA。我不明白NeHe解释的意义。

这是我在 Photoshop 中的方法,它不起作用:

  1. 创建一个新文件,将 背景层放入垃圾箱并 创建一个透明层。
  2. 在上创建一个选择 透明层并填充它 一些纯色,比如红色。
  3. 将文件另存为 32 位 TGA 并 我的 OpenGL 应用程序中的 blit。

令我沮丧的是,我原以为应该透明的区域现在变成了纯白色…… (图像加载方法没有问题,因为它可以加载一些其他好的32位targas)

Still, I am using OpenGL 1.x;
I could blit a 24bit targa image in OpenGL. Let's say I got a targa file with a monster on it.
its background is blue. How could I dicard this blue information?

An alternative: I know lesson32 in NeHe tutorial used a 32bit targa, Yeah, I could display it in my application. Here a new problem arises: How could I create 32bit TGA with certain area transparent. I don't get the point of the NeHe explanation.

here is my way in photoshop which does not work:

  1. Create a new file, put the
    background layer into the trash and
    create a transparent layer.
  2. Create a selection on the
    transparent layer and fill it with
    some solid color,say ,red.
  3. Save the file as a 32bit TGA and
    blit in my OpenGL app.

To my dismay, the region I thought should have been transparent is now pure white...
(the image loading method has no problem, as it can load some other good 32bit targas)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自找没趣 2024-11-14 16:37:03

您正在考虑颜色键控方面的问题。但你应该使用的是 alpha 通道。这是一个附加通道,不是颜色,而是不透明值。在 Photoshop 中,您可以通过用任何东西填充透明部分来实现这一点。

You're thinking in the terms of colour keying. But what you should use is a alpha channel. This is an additional channel, not being colour, but opaquenes value. In Photoshop you get this, by NOT filling the transparent parts with anything.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文