OpenGL ES 2.0 推荐的练习环境?

2023-12-12

我决定学习一些 OpenGL ES 2.0,并尝试为其选择一个练习平台。可能的目标平台可能是 Android、iPhone 或 WebGL。但我不想花费太多时间和精力来正确设置环境。

您会推荐 WebGL 来快速开始 OpenGL ES 2.0 学习还是其他东西?

编辑:我使用的是 Mac,目前对 ES 1.x 并不真正感兴趣。


如果您在以下位置注册为开发人员iOS 开发者中心(免费),您可以下载 Xcode 和 iOS SDK(同样,当您获得 Xcode 3 时免费),其中包括一个支持 OpenGL ES 2.0 的模拟器。当然,这假设您有一台 Mac 来运行这一切。

获得 SDK 后,您只需启动 Xcode 并基于 OpenGL ES 应用程序模板创建一个新应用程序即可。该应用程序将是一个功能齐全的 OpenGL ES 1.1 和 2.0 iOS 应用程序,您可以在模拟器中构建和运行它。您可以忽略所有特定于 iOS 的设置代码并专注于-drawFrame方法中的xxxViewController.m类,这是 OpenGL ES 2.0 绘图代码所在的位置。

这是一个可以非常快速地设置用于使用 OpenGL ES 2.0 着色器的环境。我还尝试了trenki 建议的PowerVR SDK 包,使用它进行设置需要更多的工作。如果您使用的是 Windows,那么它将比我在此描述的基于 Mac 的 iOS SDK 更可行。

另一种可以在 Mac 上方便地进行原型设计的着色器开发工具是 Quartz Composer。它与 Xcode 一起提供,并为各种效果(包括 OpenGL 着色器)提供了可视化原型环境。我在我写的一篇文章中演示了进行此类原型设计的示例here。桌面 GLSL 和 OpenGL ES 中的实现略有不同,但两者之间有很多相同之处。

虽然针对的是 iOS,但我最近教授了有关 OpenGL ES 2.0 的课程,作为可下载课程的一部分来自 iTunes U免费。它可能有助于加快着色器的速度。

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

OpenGL ES 2.0 推荐的练习环境? 的相关文章

  • 制作一个包含自定义对象列表的可分割类

    我在使列表对象可解析时遇到错误 我认为读取对象时发生错误 这是我的代码 public class TestSample implements Parcelable int intValue String stirngValue privat
  • CMSampleBufferSetDataBufferFromAudioBufferList 返回错误 12731

    我正在尝试捕获应用程序声音并将其传递给 AVAssetWriter 作为输入 我正在设置音频单元的回调以获取 AudioBufferList 问题始于将 AudioBufferList 转换为 CMSampleBufferRef 它总是返回
  • 使用 setText 更改文本后如何更新屏幕?

    现在我正在使用以下代码来更新TextView txtMain setText new text 该代码执行后 屏幕不会更新新文本 有没有办法可以强制文本立即更新 该代码执行后 屏幕不会更新新文本 一旦您将控制权归还给 Android 就应该
  • Auto-value-gson出现接口错误,注册一个InstanceCreator?

    我有一个如下所示的接口类 public interface Species String name And a Human实现的类 AutoValue使用类型适配器 AutoValue public abstract class Human
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 如何向 Android Studio 中的现有项目添加新活动?

    在 Eclipse 中 您只需单击 新建 按钮并选择 Android 活动即可添加新活动 但 Android Studio 有点不同 我无法找到如何向项目添加新活动 要添加一个Activity使用 Android Studio 此步骤与添加
  • 如何将设备屏幕位置转换为发送事件位置?

    我知道关于input tap x yshell 命令 但是 我想了解如何 使用执行单击sendevent命令 我能够通过以下命令实现它 sendevent dev input event5 3 53 X sendevent dev inpu
  • 无需 iPhone 6 Plus 即可预览 iOS 应用程序

    我已经在 Yosemite 中使用 iPhone 6 和 Quicktime 完成了 iOS 应用程序预览 视频 但我无法在 iTunes Connect 中为 iPhone 6 上传它 而且我没有 iPhone 6 设备 有没有办法在没有
  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • Android:canvas.drawBitmap() 方法无法正常工作

    我已经发布了两个与此相关的问题 请参考此自定义饼图 1 https stackoverflow com questions 28343600 customize pie chart in quarter shape at the botto
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • react-native android fontFamily 不生效

    问题一 我在index android js的欢迎样式中添加了fontFamily 但没有效果 fontFamily 真的可以在 Android 上使用吗 欢迎 字体大小 20 fontFamily roboto thin 文本对齐 居中
  • Jetpack Compose 中复选框中的透明复选标记

    在我的 Compose 应用程序中 我需要创建一个圆形复选框 我已经通过下面的代码实现了这一点 Composable fun CircleCheckBox isChecked Boolean modifier Modifier Modifi
  • Android TextureView 和硬件加速

    我正在尝试实现上所示的示例这一页 http developer android com reference android view TextureView html 我已经在运行 android 4 及以上版本的三种不同设备上进行了尝试
  • android系统用户和linux root用户有什么区别

    当我将手机连接到电脑并使用adb shell与我的手机通信并输入的命令ps命令输出当前在我的手机上运行的进程信息 我发现有两个特殊用户 一个是root 另一个是system 据我所知 Android是基于linux的 所以root用户是最大
  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • 背景大小:封面在视网膜显示屏上看起来像素化

    可以看到我正在开发的网站here http ourcityourstory com dev 如果你查看 iPad 3 或 iPhone 4 上的 关于 或 联系 部分 背景看起来全都是疯狂的像素化 我有background size set
  • View.post(),以及当Runnables被执行时

    我最初的问题是需要知道我的根的高度和宽度View这样我就可以进行程序化的布局更改 就我的目的而言 我不一定需要在onCreate 对于我来说 以编程方式添加我的孩子就足够了View根布局完成后 因此我很乐意使用onWindowFocusCh

随机推荐

  • 解压缩列表的谓词

    List1 x 1 y 1 z 1 我正在尝试拆分此列表 分为两个列表 List3 x y z List4 1 1 1 所以我写了这个谓词来尝试做到这一点 splt splt X Xs Y Ys X Y Zs splt Xs Ys Zs 然
  • Ionic 3 中的 Android SDK Platform 26 许可证错误

    我正在尝试在我的 Android 设备上运行我的 Ionic 3 项目ionic cordova run android device stacktrace 但是 我有以下输出 检查包 Android SDK Platform 26 的许可
  • HttpException:400 无法验证您的数据提交

    我的日志文件充满了这些错误 2021 11 19 12 39 42 27 xxx xxx xxx 1958 gi96uqh6atadlbsg2ksjfltd9e error yii web HttpException 400 yii web
  • 获取非子进程的退出代码

    我正在寻找如何从非子进程获取退出代码 众所周知 很少有函数可以与子进程一起使用 例如 wait waitpid 通过这个函数 我们可以等到子进程关闭并获取退出错误代码 但这仅适用于子进程 实际上我正在寻找 Windows 类似的获取退出代码
  • 将列表转换为矩阵

    我整个下午都在做一件简单的事情 但由于某种原因似乎无法正确完成 如何将列表转换为给定宽度的矩阵 例子 我得到了一个清单 例如 1 3 5 7 6 8 9 0 并想要创建一个矩阵 例如 1 3 5 7 6 8 9 0 通过谓词 list2ma
  • 如何将 Room TypeConverter 应用于实体的单个字段?

    我一直在尝试不同的解决方案来应用TypeConverter到房间数据库实体的单个字段 但我收到错误 Cannot figure out how to save this field into database You can conside
  • 从 C++ 拦截 Fortran STOP

    我准备了一个与旧版 Fortran 库的 C 接口 遗留库中的一些子例程遵循丑陋但可用的状态代码约定来报告错误 并且我使用此类状态代码从我的 C 代码中抛出可读的异常 它工作得很好 另一方面 有时遗留库会调用STOP 终止程序 即使病情可以
  • Flutter 导航栏 - 从另一个页面更改选项卡

    我希望能够以编程方式更改导航栏选项卡 我在 Page1 中有一个导航到 Page2 的按钮 当我执行此操作时 导航栏消失 因为我没有使用导航栏选择 page2 我有 4 个 dart 文件 分别是 navigationbar dart pa
  • 背景尺寸覆盖IE11未覆盖整个区域

    我要发疯了 IE11 拒绝用背景图像填充 DIV 的整个区域 即使我已将背景大小属性设置为 cover 考虑以下示例 CSS bg width 100 min height 220px background url bg jpg cente
  • WAMPServer phpMyadmin 超出最大执行时间 360 秒

    我刚刚安装了WampServer 当我访问我的项目页面时它有效 但是当我尝试导航 phpMyAdmin 时 我收到此错误 超过最大执行时间 360 秒 问题是什么 这里更好的解决方案是更改控制 phpMyAdmin 的配置 而不是更改php
  • 为按钮提供相等宽度约束时,自动布局未正确设置

    我看到很多解决方案并应用了自动布局约束 但我仍然没有得到所需的解决方案 当前结果 给予所有按钮的约束 查看层次结构 假设您想要的是让 3 个按钮彼此相等并使用 Interface Builder 填充屏幕宽度 没有代码 即 不以编程方式 这
  • 允许基于范围的 For 与枚举类吗?

    我有一个经常出现的代码块 我在其中循环了一个的所有成员enum class The for与新的相比 我目前使用的循环看起来非常笨重range based for 有没有办法利用新的 C 11 功能来减少我当前的冗长内容for loop 我
  • p:media 包含 PDF 文件会导致“文件不以 '%PDF-' 开头。” IE7 出现错误

    我在用着
  • 返回 true 或 false 或抛出异常 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 java version 1 7 0 75 Hello 只是想知道比较以下两个函数的首选最佳实践是什么 第一个抛出 NullPointerException 应在调用函数中捕获该异常 如果
  • 如何在 Android 中的视图上收听双击? [复制]

    这个问题在这里已经有答案了 我想检测一个doubletap在视图上 例如button 然后知道它是哪个视图 我见过这个类似的问题但他们说这是重复的问题似乎并没有回答我的问题 我所能做的一切find是添加一个GestureDetector到活
  • onActivityResult 的intent.getPath() 没有给我正确的文件名

    我正在尝试以这种方式获取文件 final Intent chooseFileIntent new Intent Intent ACTION GET CONTENT String mimetypes application pdf choos
  • 模拟单元测试引发“停止调用未启动的修补程序”错误

    当运行下面的测试时 我得到了stop called on unstarted patcher def test get subvention internal no triggered admission self billing clus
  • 从 SQLite 获取 int 值

    我听说使用sqlite3 prepare v2代替sqlite exec从数据库获取整数 但我找不到任何示例 This页面也没有帮助 现在我从数据库获取字符串 所以我需要用atoi这似乎是缓慢且无效的 SO 上有很多类似的问题 但它们都是关
  • 在java中查找字符串中第n次出现的子字符串?

    我有一个字符串 它是 html 页面的完整内容 我试图找到第二次出现的索引 有人对如何实现这一目标有任何建议吗 这是一个有趣的镜头 public static int findNthIndexOf String str String nee
  • OpenGL ES 2.0 推荐的练习环境?

    我决定学习一些 OpenGL ES 2 0 并尝试为其选择一个练习平台 可能的目标平台可能是 Android iPhone 或 WebGL 但我不想花费太多时间和精力来正确设置环境 您会推荐 WebGL 来快速开始 OpenGL ES 2