如何以形状/多边形形式渲染图像
How to Render images in shape/ polygon form?
嘿,我现在正在使用SFML,在完成教程后,我仍然不知道如何给形状一个纹理或图像,而不仅仅是一个纯色/轮廓。
我知道唯一可以拍摄图像的是一个精灵,但这太简单了,因为它只允许你以矩形的方式渲染矩形图像!
什么是渲染图像到形状,只有在形状内部的技术?如果你们中的一些人能提供一些资源或sfml特定的东西,那就太好了!
SFML已经更新,因为这个问题最初的答案,你现在可以很容易地添加纹理形状。形状类有setTexture()
和setTextureRect()
方法。setTexture()
带指向sf::Texture
的指针。参考文档
Sf::Texture texture;
if (!texture.loadFromFile("mytexture.png"))
{
std::cerr << "failed to load";
}
sf::RectangleShape myRect{ sf::Vector2f(width, height) };
myRect.setTexture(&texture);
myRect.setTextureRect(sf::IntRect( x, y, width, height ));
2d:
据我所知,在SFML 1.6中,不可能使用单独的图像作为遮罩。但是,您可以使用图像的alpha通道从中绘制"形状"。这是默认支持的;给你的图片一个alpha通道。
这篇关于SFML表单的文章验证了使用单独的图像作为掩码是不支持的。
SFML的作者Laurent Gomila发布了一些代码,允许您使用形状,精灵和字符串进行遮罩。可以在这里找到:使用精灵,形状或字符串遮罩。然而,要使其工作,您需要修改和重新编译SFML的某些部分。
3 d:关于使用图像作为纹理并将其映射到3d空间中的对象,我认为除了为您设置窗口外,SFML没有太多帮助。在Google Code上有一个名为sf3d的项目,它可能会帮你找到正确的方向。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 计算缩放多边形的比例,得到给定的多边形面积
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- 将QGraphicsItem的移动区域限制在多边形区域内
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- c++opengGL:绘制多边形+图像处理内部像素
- 如何以形状/多边形形式渲染图像