OpenGL ES iPhone - 绘制抗锯齿线

2023-12-10

通常,您会使用类似以下内容:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

glLineWidth(2.0f);

glVertexPointer(2, GL_FLOAT, 0, points);
glEnableClientState(GL_VERTEX_ARRAY);

glDrawArrays(GL_LINE_STRIP, 0, num_points);

glDisableClientState(GL_VERTEX_ARRAY);

它在 iPhone 模拟器中看起来不错,但在 iPhone 上,线条变得非常细并且没有任何抗锯齿功能。

如何在 iPhone 上获得 AA?


使用不透明度为 0 的顶点可以非常便宜地实现抗锯齿效果。 这是一个图像示例来解释:

alt text

与AA比较:

alt text

您可以在这里阅读有关此内容的论文:

http://research.microsoft.com/en-us/um/people/hoppe/overdraw.pdf

你可以这样做:

// Colors is a pointer to unsigned bytes (4 per color).
// Should alternate in opacity.
glColorPointer(4, GL_UNSIGNED_BYTE, 0, colors);
glEnableClientState(GL_COLOR_ARRAY);

// points is a pointer to floats (2 per vertex)
glVertexPointer(2, GL_FLOAT, 0, points);
glEnableClientState(GL_VERTEX_ARRAY);

glDrawArrays(GL_TRIANGLE_STRIP, 0, points_count);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenGL ES iPhone - 绘制抗锯齿线 的相关文章

  • 如何在 iphone 和 ipad 的通用应用程序中调用 [[UIScreen mainScreen] 缩放]

    我正在制作一个可以在 ipad 和 iphone 上运行的通用应用程序 到目前为止一切顺利 但我刚刚将我的 SDK 更新到 ios4 并且想要调用 UIScreen mainScreen scale scale 不在 3 2 sdk 中 并
  • iPhone签名捕捉

    是否可以通过电缆 USB 连接将签名从 iPhone 传输到 xls 文件 因此 这可能不完全是您正在寻找的内容 但这就是我捕获用户 用手指 手写笔 绘制的签名的方式 您的 UIImageView 将具有绘制的签名 我没有考虑过如何将签名图
  • 为什么每次用户启动应用程序时都要注册推送通知?

    在Apple文档中你可以找到下面这句话 应用程序应在每次启动时进行注册 并向其提供者提供当前令牌 它调用 registerForRemoteNotificationTypes 来启动注册过程 因此 当我在应用程序中实现推送通知时 我必须注册
  • 使用 popToRootViewController 时我丢失了导航栏

    我有一个 iOS 应用程序 其中主屏幕是 UICollectionViewController 从集合视图中选择项目时 视图将推送到该项目的详细信息视图 在细节视图中 我构建了一个从侧面移出的抽屉 滑块 为了让视图看起来像我想要的那样 我隐
  • 检索旋转的 UIImageView 的所有 4 个坐标

    如何获取 UIImageView 的 4 个坐标 我知道可以得到CGRect以及origin x和origin y 但是如何找到所有4个角呢 编辑 我正在旋转 UIImageViews 这就是我问的原因 P 您可以添加矩形的宽度和高度来获取
  • 如何显示AVPictureInPictureController?

    我正在尝试使用播放视频AV画中画控制器最近在IOS9 使用此代码 AVPlayer AVPlayer AVPlayer playerWithURL url AVPlayerLayer layer AVPlayerLayer playerLa
  • libgdx SpriteBatch 渲染到纹理

    是否可以使用 libGdx 适用于 Android 桌面的 Java 引擎 中的 SpriteBatch 渲染到纹理 如果是这样 怎么办 基本上我想将所有内容渲染到 512 x 256 纹理的 320 x 240 区域 然后缩放区域以适合屏
  • 是否可以在两个应用程序之间共享一项应用程序内购买?

    我的产品有两种不同的版本 一种用于 iPhone 另一种用于 iPad 是否有可能解锁功能通过应用内购买in both与其中之一一起玩一次 您不能使用相同的 ID 但是 您可以管理有关哪些用户在您自己的服务器上进行了哪些购买的信息 并在用户
  • 点击后退按钮时,iCarousel 会显示在上一页

    当我按下后退按钮时 这iCarousel仍然显示 1 秒 为什么会发生这种情况以及如何阻止这种情况 我已经使用故事板创建了 iCarosel 视图 void viewDidUnload super viewDidUnload self ca
  • iFrame 中的 Javascript iPhone 滚动效果 / Javascript 鼠标加速

    我正在尝试使用 JavaScript 在窗口中重新创建 iPhone 轻拂 滚动事件 从 JQuery 开始 我使用计时器测量单击 拖动 释放事件期间鼠标的加速度和偏移量 var MouseY init function context v
  • 使用 facebook connect for iPhone 上传照片的记录流程

    看完之后 我确实在 Facebook 论坛上看到了这篇文章 link http forum developers facebook com viewtopic php id 30467 他们正在向 facebook 对象提供 UIImage
  • 从核心数据存储创建 .sqlite 文件?

    我在书籍和提供 sqlite 文件下载的网站上看到过教程 sqlite 文件用于核心数据 如何获取 sqlite 文件FROM应用程序或核心数据存储TO我的桌面 如果您要创建一个预填充的 sqlite 文件以与 Core Data 一起使用
  • 安装 OpenGL ES 并编译 Android 代码

    我刚刚开始在 android 上学习 OpenGL ES 使用这本书 https rads stackoverflow com amzn click com 1430226471 并遇到了采用的问题source http apress co
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • 从 Xcode 更改按钮文本?

    我有一个 IBAction 连接到 Interface Builder 中的一个按钮 是否可以在运行时从我的代码中更改按钮 在 IB 中 上的文本 如果您的代码中有一个连接到某个操作的按钮 则无需实例变量即可更改标题 例如 如果按钮设置为以
  • iPhone CGContext:用两种不同颜色绘制两条线

    我在 iPhone 应用程序中使用 CGContext 时遇到一些问题 我试图用不同的颜色绘制几条线 但所有线最终总是具有最后使用的颜色 我尝试了几种方法 但并不幸运 我建立了一个小型示例项目来处理这个问题 这是我的代码 我在drawRec
  • iOS 上的多个 HTTP 请求与单个 TCP 连接

    我正在开发一个 iPhone 应用程序 它使用我控制的基于 Web 的 API 连接到持续打开的 TCP 端口并通过 TCP API 发出请求 或者为我想要获取的所有数据发出新的 HTTP 请求 会更快或更高效吗 我认为差异可以忽略不计 但
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • 如何在 UI 视图上显示两个表

    我想在 UI 视图上使用和显示两个表 请让我知道如何执行此操作 任何相同的代码也将受到赞赏 谢谢 桑迪普 将 2 个 UITableView 添加到 IB 中的视图中 并将它们连接到文件所有者中的 2 个不同的出口 或者简单地分配不同的标签
  • iPhone SDK:拖动 UIImageView 时出现问题

    我正在尝试在我的应用程序中拖动 iPhone 屏幕上的 UIImageView 目前我设置的拖动功能很好 拖动图像确实会在屏幕上移动它 问题是你不必拖动图像视图来移动它 你也可以拖动屏幕上的任何地方 它会移动图像 我是这个平台的新手 所以我

随机推荐

  • 比较 2 个 CSV 文件并写下所有差异

    我有 3 个包含用户信息的 CSV 文件 CSV1 是所有非活动用户的 主 列表 CSV2 是需要停用的当前用户列表 CSV3 是需要激活的用户列表 我想要的是有一个可以从另一个脚本 创建 CSV2 3 的脚本 调用的 PowerShell
  • 在 C# 的类构造函数中调用异步方法[重复]

    这个问题在这里已经有答案了 目前我正在使用 C 开发一个通用应用程序 在应用程序中 我使用 sqlite 作为数据库 正如您现在可能的那样 它具有异步方法 我有一个带有一些 null 属性的类 我将使用从数据库获取的数据来填充它们 但它应该
  • 如何使用phonegap/jQueryMobile从OpenCart获取JSON格式的产品

    无论如何 是否可以使用 Ajax JavaScript jQuery 从我的 OpenCart 商店中从 PhoneGap 移动应用程序获取 JSON 格式的产品目录 OpenCart 允许这样的事情吗 欢迎任何想法或代码 OcJoy 进展
  • 使用 Json 数据改造 POST 方法收到错误代码 400:错误请求

    我想使用 JSON 数据 提供 JSON 作为 JsonObject 在 Retrofit 中调用 POST 方法 Magento REST API 为此 我按照邮递员的要求拨打电话 对我来说工作得很好 我已经完成了 android 部分如
  • 重写我的分数文本文件以确保它只有最后 4 个分数 (python)

    以前 在 SO 用户的帮助下 我已经能够找到如何使用字典中的 maxlength 属性在 Python 文档中存储最多 4 个键 现在 我想走得更远 下面是一个包含所有内容的文本文件recent我的参与者 戴夫 杰克和亚当 Jack 10
  • 检索插入行的索引

    我试图使我正在处理的项目的数据库表保持良好和规范化 但我遇到了问题 我试图弄清楚如何在表中插入一行 然后找出 auto incremented 的值id列设置为以便我可以将附加数据插入到另一个表中 我知道有这样的功能mysql insert
  • 通常是什么导致haskell中出现“错误C堆栈溢出”

    Hugs Haskell 实现中 错误 C 堆栈溢出 的常见原因是什么 如果您习惯于通常进行尾递归分解的函数式语言 则可能会出现这种情况 假设你有一个函数 sum go 0 where go accum accum go accum x x
  • ListView 中显示的 YouTube 播放列表

    我有一个GDATA我想在我的应用程序中使用的链接 此链接包含一个播放列表 我希望该播放列表显示在ListView 然后 用户将选择他 她想要的视频 然后就可以使用本地 Youtube 应用程序在应用程序中播放该视频 请给我指出一个直观的教程
  • 仅更改应用程序中一个 UIViewController 的 UIInterfaceOrientation

    我有一个 iPhone 应用程序 其结构类似于 带表的导航控制器 gt 带表的下一个视图控制器 gt QLPreviewController 通过点击第一个视图控制器 带有导航控制器 中的表格单元格 会出现带有另一个表格的新视图控制器 点击
  • Selenium 测试工作时如何工作

    当我编写自动化测试并运行它们 在我的 PC 上 时 在测试完成之前我无法工作 因为例如 如果我正在编码 焦点将从 Visual Studio 跳出 转到在 Web 浏览器中查看的测试中的 Web 应用程序 有没有办法防止 Selenium
  • Django 使用 Nginx 提供静态内容

    我正在尝试配置 nginx 以在远程 VPS 上为我的 django 项目提供静态内容 我的 nginx 实例使用以下配置 server server name myVPSip access log off location static
  • x64 Linux 中单进程最大可能内存

    x64 Linux 中单个进程有内存限制吗 我们正在运行一个具有 32Gb RAM 的 Linux 服务器 我想知道是否可以将大部分 RAM 分配给我正在编码的单个进程 该进程需要大量 RAM 某些内核有不同的限制 但在任何现代 64 位
  • 谷歌应用程序引擎请求日志细分

    以下是管理控制台日志部分中的一个 python appengine 应用程序的示例行 已过滤为 仅请求 01 22 07 19PM 55 483 zone 5 200 82ms 161cpu ms 115api cpu ms 0kb Moz
  • 如何快速计算数组中的特定项目

    假设我有下面任何对象的数组 我正在寻找一种方法来计算数组中的项目 如下所示 var OSes iOS Android Android Android Windows Phone 25 有没有一种快捷方式可以让 swift 做下面这样的事情
  • 关闭视图控制器而不停止异步任务

    我使用以下代码从新启动的视图控制器执行一些复杂的后台操作 let globalQueue DispatchQueue global globalQueue async complex job 当用户单击取消按钮时 我调用 self dism
  • Python 上的 MongoDB Atlas 身份验证失败

    我已经在 Heroku 上部署了这个 Python 应用程序 我希望它连接到 MongoDB Atlas 集群 我使用字符串连接到集群 但由于某种原因我不断收到raise OperationFailure msg errmsg code r
  • 云 Web 服务器上的 wkhtmltopdf.exe System.Security.SecurityException。我如何覆盖服务器安全策略

    我希望我的网站有一个功能 可以将页面内容打印为 PDF 我为此尝试了一些选项 但最好的匹配是 wkhtmltopdf 因为它还可以处理多语言字符 我让它在我的本地服务器上运行 但是当我将它上传到云网络服务器上进行托管时 它给了我以下错误 S
  • git:如何恢复 .gitignore 中的文件 [致命:空提交集已通过]

    我的 gitignore 文件有以下行 vendor 我修改了供应商文件夹中的一个文件 现在 当我通过执行更新我的包时 bin vendors install 我看到以下消息 捆绑包名称 有本地修改 请在再次运行此命令之前提交或恢复 推送它
  • 需要帮助在 bash 脚本中使用 grep/egrep 匹配模式

    我试图匹配给定字符串的所有字符 但这些字符应该按照 bash 脚本给出的顺序匹配 while gt 0 do case 1 in i arg 2 egrep arg words txt shift esac shift done sh ma
  • OpenGL ES iPhone - 绘制抗锯齿线

    通常 您会使用类似以下内容 glBlendFunc GL SRC ALPHA GL ONE MINUS SRC ALPHA glEnable GL BLEND glEnable GL LINE SMOOTH glLineWidth 2 0f