`
hereson3
  • 浏览: 160663 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

关于怎么学习API (OpenGL/Direct3D等)

阅读更多

????? 关于怎么学习API (OpenGL/Direct3D等)

????? 最近很多人在问,我该如何学习OpenGL?我学完了OpenGL了,该怎么用?
????? 我想在回答这些类似的问题以前先和大家谈谈怎么学习API的方法,或许谈完了,我就不需要回答了。 
????? 首先,我认为API是工具,不是本质,OpenGL/Direct3D的本质是图形学,而不是OpenGL/Direct3D的本身,API的本身只是一些Interface而已.如果你明白图形学的原理.那么你很容易这些接口的作用,以及为什么要有这些接口的存在.所以,我要说的第一点是:你要学习3D编程,不是学会了OpenGL/Direct3D就可以了。甚至会不会这些API都不是那么的重要(虽然这么说,或许很多人不太赞同).最重要的,最根本的是,你要明白这些API背后的图形学的原理---因为那才是根本中的根本.
??? 下面我来介绍我对API学习的看法.
我认为API的学习有两种方法:一是正向学习.二是反向学习.
???? 一:正向学习 ,所谓的正向学习,就是学习API的本身.我觉得这种方法是一种Brute Force行为.不是很好.我们只要看看API的特性,有那些部分.就可以了。比如学习Direct3D的时候,我们要知道它如何初始化,以及它和操作系统的结合.它在Direct3D8里引入了VS/PS.最后就是创建一个Direct3D应用的步骤和方法.这些就足够了。要不然.Direct3D那么多的函数,一个几十个参数。每一个都会要了我的命.
???? 正向学习的第二个作用就是你在熟悉了图形学和大概了解了API后,有空就来看看API的细节,然后思索一下API里提供的一些特性对你的程序有什么作用.比如Direct3D里的Two Side Stencil.OpenGL里的TextureCombine等。

????? 二:逆向学习 .这是根本的方法,到了这一步,你就可以真正的算是图形学入门了。这要求你要有一定的图形学基础.比如,你现在开始做一个demo.你预计你的demo里有一堆眩眩的效果,当然你也要明白你的这些眩眩的效果要怎么实现的.然后你去找API里对应的功能,我想如果你的想法正常,一般的功能在Direct3D/OpenGL里应该都会有的.当然你也会碰到你想要的功能在这些API里没有,但是这不重要,重要的是你又学到新东西了---这个特性在XX API里不支持^_^.

???? 通常我是采用先正向,再逆向,同时再进行正向学习的方法.希望以上的建议,对各位初学者有一定的帮助.

分享到:
评论

相关推荐

    cnc-ddraw:GDI,OpenGL和Direct3D 9重新实现了适用于经典游戏的DirectDraw API,以更好地与Windows XP,Vista,7、8、10和Wine兼容

    GDI / OpenGL / Direct3D 9渲染器(具有自动渲染器选择) 通过GLSL着色器倍增- | 窗口模式/全屏独占模式/窗口全屏模式/全屏拉伸独占模式 Alt + Enter支持可在全屏和窗口模式之间快速切换 自动保存和恢复窗口位置/...

    游戏开发新手入门指导

    游戏开发新手入门指导 游戏制作新人: 用什么语言和编译器来做游戏? DirectX是什么? 学编程需要哪些书? 我怎样制作游戏? 哪些书是介绍游戏开发的? ...关于怎么学习API (OpenGL/Direct3D等)?

    OpenGL图形API

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,...

    apitrace:跟踪OpenGL,Direct3D和其他图形API的工具

    将OpenGL,Direct3D和DirectDraw API调用跟踪到文件; 从文件重播OpenGL和Direct3D调用; 跟踪时在任何调用时检查OpenGL和Direct3D状态; 可视化和编辑跟踪文件。 有关更多详细信息,请参见。 状态 TL; DR:...

    OpenGL 4 API文档

    而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现...

    OpenGL 入门学习教程

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用...

    LLGL:低级图形库(LLGL)是现代图形API OpenGL,Direct3D,Vulkan和Metal的薄抽象层

    的OpenGL OpenGLES 3 金属 视窗 :check_mark: :check_mark: :check_mark: :check_mark: 不适用 不适用 GNU / Linux 不适用 不适用 :check_mark: :check_mark: 不适用 不适用 苹果系统 不适用 不适用...

    最简单的视音频播放示例 1.1

    本工程包含了使用各种API(Direct3D,OpenGL,GDI,DirectSound,SDL2)播放多媒体例子。 其中音频输入为PCM采样数据。输出至系统的声卡播放出来。 视频输入为YUV/RGB像素数据。输出至显示器上的一个窗口播放出来。 ...

    最简单的视音频播放示例

    本工程包含了使用各种API(Direct3D,OpenGL,GDI,DirectSound,SDL2)播放多媒体例子。 其中音频输入为PCM采样数据。输出至系统的声卡播放出来。 视频输入为YUV/RGB像素数据。输出至显示器上的一个窗口播放出来。 ...

    java3d入门介绍

    Java 3D API 的设计是对以前流行的诸如 OpenGL 和 Direct3D 的 3D 图形 API 的重大革新(以前的 API 是同 3D 硬件设计紧密结合的低级过程性 API)。Java 3D 是一种功能强大的、面向对象的 API,它提供了许多超出我们...

    OpenGL入门教程

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用...

    OpenGL入门学习教程

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一 个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统, 它甚至在大型计算机、各种专业计算机(如:医疗用...

    opengl 自学教程

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,...

    OPENGL库集合

    效率远比Direct 3D高,所以是各3D游戏开发商优先选用的3D API。不过,这样一来就使得许多精美的3D游戏在刚推出时,只支持3Dfx公司的VOODOO系列3D加速卡,而其它类型的3D加速卡则要等待其生产厂商提供该游戏的补丁...

    OpenGL入门学习

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用...

    OpenGL编程-带书签

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于 Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用...

    CEGUI图形 API/引擎提供窗口和小部件

    我们目前提供 OpenGL 2.X、OpenGL 3.2+ Core Profile、Direct3D 9、Direct3D 10、Direct3D 11、Irrlicht、Ogre3D 和 OpenGL ES(实验性)的实现。还提供了一个虚拟渲染器 (NullRenderer)。此外,还支持 Crystal ...

    Kinc:现代低级游戏库和硬件抽象

    锌Kinc项目是使用nodejs... 在Windows中,您还可以选择图形api(-g direct3d9 / direct3d11 / direct3d12 / opengl / vulkan / metal)和Visual Studio版本(-v vs2010 / vs2012 / vs2013 / vs2015 / vs2017 / 2019)。

    基于SwiftShader基于CPU的OpenGL ES和Direct3D 9图形API的实现-Swift开发

    SwiftShader简介SwiftShader是Vulkan和OpenGL ES图形API的基于CPU的高性能实现。 其目标是为高级3D图形提供硬件独立性。 Bui SwiftShader简介SwiftShader是Vulkan和OpenGL ES图形API的基于CPU的高性能实现。 其目标...

    OpenGL入门教程共95页.doc

    微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用...

Global site tag (gtag.js) - Google Analytics