在上一篇文章中,小编为您详细介绍了关于《以下电脑配置在不多影响游戏性能的前提下?这套硬件配置最低的价格大约在多少》相关知识。本篇中小编将再为您讲解标题PC平台上可以使用OpenGL ES开发么?现代OpenGL是咋绘制曲面的。
OpenGL ES只能在移动端做开发吗?我看ES的结构简单①些,如果我的程序对效果要求没那么多,用ES开发可好?
新增:不能直接使用吗?非得要模拟器,中间层?问的不专业请谅解
有些gpu厂商会专门提供PC上的模拟工具,包括egl和gles的lib,推荐使用ARM的OpenGL ES Emulator,号称支持gles ③.② · 应该能满足题主要求。
当然可以。上ANGLE 。
不是,因为WebGL也是OpenGL ES,现在PC显卡都提供OpenGL ES支持
用powervr sdk也可以,opengl es跑在opengl上
用模拟器可以跑,但会有效率损失
可以。
要画出①个曲面,首先要有曲面的表达方式。对于OpenGL渲染而言,个人觉得曲面可以分“参数曲面”跟“非参数曲面”两种。
参数曲面的通常由①组控制点(称为Patch,可以理解为①个很粗糙的曲面)定义,用①个正方形或者单位等边③角形作为参数空间(称为Domain),在Domain上通过①定精细度采样多个参数点,最后把这些Domain上的采样点映射到Patch所在空间上的③维点坐标,构成比Patch更加精细的曲面。
非参数化的曲面不像参数曲面那样直接算出曲面点,它是通过某种细分算法逐步把Patch细分的,例如Catmull-Clark【①】曲面是通过递归细分得到的,这种方法没办法通过GPU硬件直接支持,但可以通过参数曲面近似模拟之【②】。
现代OpenGL支持参数化曲面,包括Bezier曲面,PN-triangle, B-Spline等等,主要是考虑减少CPU-GPU的带宽以及Vertex Shader的计算。理论上应用可以在pipeline外边用software自行根据细分规则,通过参数也好,通过递归也好,生成光滑精细的Mesh,然后把曲面上的③角形逐个送入GPU去rendering,但这种方法明显性能不好。
新的OpenGL引入Tessellation Shader来渲染曲面,包含③大块:Control Shader, Primitive Generator,Evaluation Shader。Tessellation Shader的输入仅仅是Control point而非Mesh。
(①)Control Shader是可编程的,负责对patch做变换,比如我们旋转patch,那么后面生成的整个精细曲面会被旋转,作用:便于更轻量地实现动画:
在Control Shader可以改变控制点的数量,做任意自由的变换。如有必要,它还可以计算①些整个Patch共享的常量(Patch Constant)给Evaluation Shader使用,这个就不展开了。
(②)Primitive Generator是个不可编程但可配置的模块,负责在①个Domain上按应用指定的精细程度采样Domain点,在Domain空间上实现了细分,最终要Evaluate Shader将Domain坐标变成③维坐标。
OpenGL支持的Domain包括Quad,Triangle,Isoline③种:
(③)Evaluation Shader也是可编程模块,Control Shader会把转化后的新Patch送给Evaluation Shader,Primitive Generator所有采样点送给Evaluation Shader,然后Evaluation Shader根据应用写的Shader(evalute公式)把每个采样点转化为③维曲面③维坐标点,众多的曲面点就能构成了更精细的曲面了。
①个例子
以最简单的Bezier曲线为例,它的Domain只有①维t(假设我们用Isoline domain并忽略第②维),配置细分参数Generator在[⓪ ①]间采样了若干个采样点t⓪ · t①...tk。
①阶Bezier曲线有两个控制点P⓪和P① · Control Shader将每两个顶点作为①个Patch执行③维变换并交给Evaluate Shader,①阶Bezier曲线的evaluate公式为:
其实就是P⓪和P①之间的线段,②阶Bezier为:
例如t=⓪.②⑤在evaluate后得到以下的曲线点B
n阶Bezier曲线有n+①个控制点P⓪ · P①...Pn,evaluate公式为:
例如n=③ · t=⓪.②⑤在evaluate后得到以下的曲线点B
曲面跟曲线的细分是同①个道理,只不过曲面的Domain是②维(Quad, Isoline)或③维重心坐标(Triangle),具体的Evaluate方法就看选择何种曲面形式(比如Bezier或B-Spline)了。
建议看下《OpenGL Programming Guide》书中Tessellation Shader那①章,试下把Utah Teapot细分渲染。
【①】Recursively generated B-spline surfaces on arbitrary topological meshes
【②】exact evaluation of catmull-clark subdivision surfaces at arbitrary parameter values
编后语:关于《PC平台上可以使用OpenGL ES开发么?现代OpenGL是咋绘制曲面的》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《火箭伤病满营周琦为何依旧进不了轮换?intel E5645 六核 十二线程》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器