Graphics 如何从头开始创建实时渲染窗口?

Graphics 如何从头开始创建实时渲染窗口?,graphics,window,rendering,real-time,Graphics,Window,Rendering,Real Time,我自己学习3D图形已经有一段时间了,我想更好地了解一切是如何运作的。我想做的是创建一个简单的游戏,而不使用DirectX或OpenGL。我理解大部分我相信的数学,但我遇到的问题是我不知道如何控制窗口中显示的像素 如何指定窗口中每个像素的颜色 我知道我可能会遇到缓冲区和图像剪切的问题,可能会遇到可怕的效率问题,但我想创建自己的程序,以便从高级语言的最底层了解渲染过程是如何工作的。我真的不知道从哪里开始。我已经知道了如何输出BMP,但我希望有一个每秒输出20多帧的运行程序。如何实现这一点?我从字里行

我自己学习3D图形已经有一段时间了,我想更好地了解一切是如何运作的。我想做的是创建一个简单的游戏,而不使用DirectX或OpenGL。我理解大部分我相信的数学,但我遇到的问题是我不知道如何控制窗口中显示的像素

如何指定窗口中每个像素的颜色


我知道我可能会遇到缓冲区和图像剪切的问题,可能会遇到可怕的效率问题,但我想创建自己的程序,以便从高级语言的最底层了解渲染过程是如何工作的。我真的不知道从哪里开始。我已经知道了如何输出BMP,但我希望有一个每秒输出20多帧的运行程序。如何实现这一点?

我从字里行间了解到,您更感兴趣的是从较低的级别完全控制渲染过程,而不是对如何在特定平台上实现这一点感兴趣


如果是这样的话,那么你可能会得到一个很好的回报,看看像这样的库,它为你提供了一个帧缓冲区,你可以直接渲染,但抽象了很多平台的具体问题。它已经存在了相当长的一段时间,有一些很好的教程可以让您了解它是否是您正在寻找的类型-请参阅和同一系列中的后续教程,这应该足以让您启动并运行。

您可以选择一个环境,允许您使用像素值填充数组并将其显示为位图。通过这种方式,您最接近于在视频内存中插入RGB值。WPF、Silverlight、HTML5/Javascript可以做到这一点。如果你不让它全屏,这些技术现在应该足够了

然后由您来实现绘制直线、圆、贝塞尔曲线和三维投影的逻辑


这很有趣,你会学到很多

您说要创建某种渲染引擎,这意味着要设计自己的管道和矩阵类。用于将三维坐标转换为二维点的

当你得到了你一直在寻找的2D点。例如,可以在窗口上使用画笔,在为三角形值着色的同时,选择画笔并绘制三角形值

我不知道为什么你会需要位图,但是如果你想练习说纹理,你也可以自己做,尽管在一台较弱的计算机上这可能会占用你每秒的帧数

如果您的目标是了解渲染如何在最低级别上工作。这无疑是一种良好的做法

施温施维加酒店