CN105635707A - 一种图像生成方法和装置 - Google Patents
一种图像生成方法和装置 Download PDFInfo
- Publication number
- CN105635707A CN105635707A CN201410620836.1A CN201410620836A CN105635707A CN 105635707 A CN105635707 A CN 105635707A CN 201410620836 A CN201410620836 A CN 201410620836A CN 105635707 A CN105635707 A CN 105635707A
- Authority
- CN
- China
- Prior art keywords
- image
- scene
- viewpoint
- scenery
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开一种图像生成方法和装置,其中一种图像生成方法包括如下步骤:根据视点的第一参数和第二参数生成一段指令,把该指令插入顶点着色程序末尾,用上述修改后的顶点着色程序绘制景物图像。本发明避免了对矩阵的修改即可产生视点图像。解决现有在无法对矩阵进行修改时的立体图像的生成问题。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种图像生成方法和装置。
背景技术
在传统GPU(GraphicProcessingUnit,图形处理器)固定功能图形管线框架下,由于所有的变换矩阵,如模型变换矩阵M,视图变换矩阵V,投影变换矩阵P等都是可以指定的,GPU设备驱动都可以获取这些矩阵,因此在应用程序不需要做任何修改的情况下,通过GPU设备驱动可以直接调节视图变换矩阵V实现摄像机位置的移动,这样就可以产生不同摄像机位置的图像,也就是可以产生不同视点的图像,这样就很容易产生基于左眼视点的图像和基于右眼视点的图像,从而产生有立体感的两张视差图像。
而在GPU可编程管线框架下,所有的变换矩阵都不是显式指定的,GPU设备驱动获取到的矩阵有可能是最终的混合矩阵,是无法对该矩阵进行修改以实现摄像机位置的移动,因此在应用程序不支持立体显示功能的情况下,很难通过修改相关矩阵实现产生有立体感的图像。
发明内容
为此,需要提供一种图像生成方案,解决在应用程序不支持立体显示功能的情况下,很难通过修改相关矩阵实现产生有立体感的图像的问题。
为实现上述目的,发明人提供了一种图像生成方法,包括如下步骤:
根据视点的第一参数和第二参数生成一段指令,把该段指令插入顶点着色程序末尾,用上述修改后的顶点着色程序绘制景物图像。
进一步地,所述方法包括如下步骤:
接收到三维场景中一条景物渲染指令;
执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
重复上述步骤,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
进一步地,本方法包括如下步骤:
接收到三维场景中一条景物渲染指令;
判断该指令是否是3D景物渲染指令;
如果是则执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
否则执行修改前的顶点着色程序对景物进行处理,生成景物图像;
重复上述步骤,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
进一步地,所述方法用于生成第一视点图像和第二视点图像,在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到同一平面区。
进一步地,还包括如下步骤:存储所述同一平面区的图像到存储设备或者在显示设备上显示同一平面区的图像。
进一步地,所述方法用于生成第一视点图像和第二视点图像,在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区。
进一步地,还包括如下步骤:合成第一视点图像和第二视点图像为一幅左右格式、上下格式或重叠格式的立体图像。
进一步地,还包括如下步骤:存储立体图像到存储设备或者在显示设备上显示立体图像。
进一步地,还包括如下步骤:存储第一视点图像或第二视点图像到存储设备或者在显示设备上显示第一视点图像或第二视点图像。
进一步地,还包括如下步骤:存储图像(包括上述的立体图像、第一视点图像、第二视点图像等)到存储设备或者在显示设备上显示图像。
进一步地,还包括如下步骤:传输或处理所述图像,存储处理后的图像到存储设备或者在显示设备上显示图像。
以及发明人还提供一种图像生成装置,包括如下模块:
修改模块:用于根据视点的第一参数和第二参数生成一段指令,把该指令插入顶点着色程序末尾;
绘制模块:用于用上述修改后的顶点着色程序绘制景物图像。
进一步地,包括如下模块:
接收模块:用于接收到三维场景中一条景物渲染指令;
绘制模块还用于执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
图像生成模块:用于重复使能接收模块和绘制模块,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
进一步地,包括如下模块:
接收模块:接收到三维场景中一条景物渲染指令;
判断模块:用于判断该指令是否是3D景物渲染指令;在该指令是3D景物渲染指令时,则使能绘制模块;在该指令不是3D景物渲染指令时执行修改前的顶点着色程序对景物进行处理,生成景物图像;
图像生成模块:用于重复使能接收模块和判断模块,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
进一步地,所述装置用于生成第一视点图像和第二视点图像,所述绘制模块还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到同一平面区。
进一步地,还包括如下模块:图像显示或存储模块,用于存储所述同一平面区的图像到存储设备或者在显示设备上显示同一平面区的图像。
进一步地,所述装置用于生成第一视点图像和第二视点图像,所述绘制模块还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区。
进一步地,还包括如下模块:立体图像合成模块,用于合成第一视点图像和第二视点图像为一幅左右格式、上下格式或重叠格式的立体图像。
进一步地,还包括如下模块:图像显示或存储模块,用于存储立体图像到存储设备或者在显示设备上显示立体图像。
进一步地,还包括如下模块:图像显示或存储模块,用于存储第一视点图像或第二视点图像到存储设备或者在显示设备上显示第一视点图像或第二视点图像。
进一步地,还包括如下模块:图像显示或存储模块,用于存储图像(包括上述的立体图像、第一视点图像、第二视点图像等)到存储设备或者在显示设备上显示图像,或者用于传输或处理图像,存储处理后的图像到存储设备或者在显示设备上显示图像。
区别于现有技术,上述技术方案具有如下优点:在应用程序不支持立体显示模式以及不告知视图变换矩阵的情况下,通过修改顶点着色程序,使其可以产生基于视点的景物图像,并可用于生成各视点图像,避免了对变换矩阵的修改,从而解决没有视图变换矩阵信息的情况下立体图像生成问题。
附图说明
图1为本发明一实施例的方法流程图;
图2为本发明另一实施例的方法流程图;
图3为本发明装置实施例的结构图。
附图标记说明:
3、装置;
300、修改模块;
301、绘制模块;
302、接收模块;
303、图像生成模块;
304、判断模块;
305、立体图像合成模块;
306、图像显示或存储模块。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本实施例提供了一种图像生成方法,本方法可以由GPU执行,包括如下步骤:首先进入步骤S101根据视点的第一参数和第二参数生成一段指令。根据视点位置的不同,所看到的景物(即视点景物图像)也是不同。如通过照相机放在左眼处和右眼处进行拍照,可得到不同的图像,所以需要对同一场景的视点图像采用不同指令进行处理。顶点着色器程序(VSP,VertexShaderProgram,是一组指令代码,这组指令代码在顶点被渲染时执行,可以由GPU运行)在渲染顶点时会基于一原始视点,当视点与原始视点不同时,想要生成该视点的景物图像,需要用参数来表示视点位置,则可以用第一参数、第二参数来表示当前视点相对于这一原始视点的相对位置的参数。
具体地,第一参数和第二参数这两个参数一般由GPU驱动根据当前需要渲染物体的视点图像进行不同的设置,上述在步骤S101生成的指令的伪代码如下:
pos.x+=(parameter1+(parameter2*pos.w))
其中pos为VSP中顶点输出的寄存器值(将作为GPU下一阶段处理的输入值),pos.x为输出的顶点的x坐标,pos.w为输出顶点的齐次坐标(齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示)。在某些实施例中,参数parameter1(可以视为第一参数或第二参数)用来调节当前视点方向相对原始视点方向的角度。当当前视点为左眼视点或右眼视点时,则当该参数为正值时,控制的是左眼视点方向相对原始视点方向的角度,当参数为负值时,控制的是右眼视点方向相对原始视点方向的角度。通过调节该参数,就可以调整第一视点方向和第二视点方向的夹角,即视差,控制立体效果的强度。在某些实施例中,参数parameter2(可以视为第一参数或第二参数)用来调节当前视点与原始视点在X方向的距离,通过调节该参数,就可以调整当前视点的视点距离,进而控制人眼看到的场景的远近效果。而后进入步骤S102把该段指令插入顶点着色程序末尾(可以是顶点着色器程序的主函数的尾部结尾处),即对顶点着色程序进行修改,最后在步骤S103用上述修改后的顶点着色程序绘制景物图像。通过本方法可以实现对原始顶点在投影平面上的投影点的移动,从而模拟视点的移动,在需要产生立体图像时,只需要对每个顶点执行上述修改过的顶点着色程序,使得顶点着色程序对三维场景的所有景物(景物为三维场景中的一部分,这部分可以为一个整体,如一棵树、一个人等)进行绘制,即可最终生成基于视点的图像。
本实施例在应用程序不支持立体显示模式以及不告知视图变换矩阵的情况下,通过根据参数修改VSP,无需对视图变换矩阵进行修改,即可产生基于视点的图像。在需要产生立体图像时,只需要生成不同视点(如左眼视点和右眼视点)的图像对即可,从而解决没有视图变换矩阵信息的情况下立体图像生成问题。
对于三维场景,使用修改后的VSP生成基于某一视点的视点图像可以通过如下步骤,如图2所示,首先进入步骤S201接收到三维场景中一条景物渲染指令,此时即将开始对三维场景中的景物进行渲染。而后进入步骤S203执行所述景物渲染指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像,由于修改后的顶点着色程序是基于某一视点的,则生成的景物图像也是基于该视点的。而后进入步骤S205重复上述步骤,即重复步骤S201和S203,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像,此时的视点图像也是基于上述视点的。具体在生成景物图像前,可以先指定一个用于存储景物图像的平面区(surface),而后在生成景物图像时,可以存储景物图像到平面区,在场景中所有景物都渲染完毕后,则平面区上存有该视点的视点图像。
通过上述方法即可针对场景产生基于某一视点的视点图像。根据不同的显示设备输入方式,立体图像可以由两张不同的视点图像组成或合成。在生成立体图像时,可以根据参数生成立体图像所需的不同视点的视点图像。本实施例的方法生成的立体图像对于简单的3D图形应用或游戏可能没有问题,但是稍微复杂或效果好的3D图形应用或游戏则会导致渲染的图像可能没有立体效果,发明人在经过研究后发现原因如下:
具体地,一般简单的场景(如简单的3D图形应用或游戏)都是只基于最终的一块平面区(surface)进行渲染,也就是场景中的所有景物都是一个个分别地在这块最终的平面区上进行绘制,使用上述的方法对这块最终的平面区上的渲染操作和景物生成都是通过对应的修改后的VSP进行控制和操作的,由于这些景物的渲染都被正确处理过,可以得到立体图像所需的不同视点的视点图像。因此得到的立体图像是有立体效果的。
然而,复杂的场景为了做一些复杂特效(如动态模糊、毛玻璃效果等逼真的高级效果)或操作,一般会先基于临时的一块平面区上进行实际场景中各个景物的渲染,然后再将渲染完的这块平面区进行后处理,后处理结束后,再输出到最终的平面区上。如果只对绘制最终的平面区的所有原VSP进行修改,执行修改后的VSP得不到实际场景不同的视点图像。发明人研究后发现要获得实际场景所需的不同视点的视点图像,需要只对绘制所述临时平面区的所有原VSP应用修改,保证这块临时的平面区上的图像是有立体效果的,而在其他的平面区或最终平面区上则不对所有原VSP修改,这样才能得到实际场景所需的不同视点的视点图像。
目前大部分的三维场景都包含有复杂的特效,从而可以达到更好的效果。为了使得复杂的场景能够产生具有立体效果的视点图像,在本实施例中可以通过如下方式实现,如图2所示,首先在步骤S201接收到三维场景中一条景物渲染指令,然后进入步骤S202判断该指令是否是3D景物渲染指令,如渲染的人物、物体、景物等即是3D景物渲染,而像复杂特效如毛玻璃效果渲染则可以认为非3D景物渲染。如果是3D景物渲染指令则进入步骤S203进入所述该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像。如果不是3D景物渲染指令,则进入步骤S204进入修改前的顶点着色程序对景物进行处理,生成景物图像。通过采用不同的顶点着色程序对不同的景物进行处理,可以生成基于视点的景物图像,而后进入步骤S205重复上述步骤,即重复步骤S201到S204,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。此时生成的视点图像中的所有景物都是基于当前视点的。通过上述方法,可以得到复杂3D场景的立体图像所需的不同视点的视点图像。
立体图像的生成需要不同视点的视点图像,则上述方法可以用于生成第一视点图像和第二视点图像。第一视点图像和第二视点图像可以在接收到一个景物渲染指令后,同时进行第一视点的景物图像的生成和第二视点的景物图像的生成,最终生成第一视点的视点图像和第二视点的视点图像,这样速度相对较快,也可以在第一视点的景物图像全部生成完毕后再去生成第二视点的景物图像。不管采取哪种方式,都需要将第一视点的景物图像和第二视点的景物图像存储到平面区(surface),具体地,可以将第一视点的景物图像和第二视点的景物图像存储到同一平面区或者是不同的平面区。由于大多数时候,立体图像为一幅包含有不同视点图像的图像,如左右格式立体图像包含有左右两张不同视点的视点图像,如上下格式立体图像包含有上下两张不同视点的视点图像,或重叠格式立体图像包含有重叠的两张不同视点的视点图像,重叠格式如红蓝格式等。在将第一视点的景物图像和第二视点的景物图像存储到同一平面区时,可以根据预生成的立体图像的格式或者显示设备支持的立体图像的格式(如上述的左右格式、上下格式或重叠格式等)进行存储,如想要生成的立体图像格式为上下格式,则可以将第一视点的景物图像填充到同一平面区的上半部分,将第二视点的景物图像填充到同一平面区的下半部分,在三维场景的所有景物图像渲染完毕后,则同一平面区上即存有上下格式的立体图像。该做法减少了一块平面区的内存开销,而且不需要在不同平面区之间做切换,只需要一直在这块平面区里进行渲染即可,以及减少后期再去将两个视点图像合成为一个立体图像的步骤,从而减少内存和处理器消耗,并提高了输出的帧率。
在存储景物图像到同一平面区结束后,可以存储同一平面区的图像到存储设备或者在显示设备上显示同一平面区的图像。其中,存储设备可以是ROM、硬盘或者内存等,显示设备可以是头戴显示器、3D投影仪或者3D显示器等。在显示设备上显示图像,用户可以对图像进行实时的观察。当然,当三维场景是多帧图像(如视频)的一帧时,也可以将多帧图像在同一平面区对应的图像合成为多帧。
而在将第一视点的景物图像和第二视点的景物图像存储到不同的平面区时,具体地,可以在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区,如第一视点的景物图像可以存在第一平面区,第二视点的景物图像存在第二平面区,在所有景物图像都生成完毕后,则在第一平面区会存储有第一视点图像,在第二平面区会存储有第二视点图像。此时可以直接存储第一视点图像或第二视点图像到存储设备或者在显示设备上显示第一视点图像或第二视点图像,或者先合成第一视点图像和第二视点图像为一幅左右格式、上下格式或重叠格式的立体图像。对于合成后的立体图像,可以进行进一步处理,如发送或作为视频的一部分进行合成等,也可以存储立体图像到存储设备或者在显示设备上显示立体图像。
以及基于上述的方法,发明人还提供一种图像生成装置3,如图3所示,包括如下模块:修改模块300:用于根据视点的第一参数和第二参数生成一段指令,把该指令插入顶点着色程序末尾;绘制模块301:用于用上述修改后的顶点着色程序绘制景物图像。不同的视点具有不同的第一参数和第二参数,第一参数和第二参数包括当前视点与原始视点距离的参数和当前视点与图像的距离参数,所述指令用于改变修改前顶点着色程序生成的景物图像,使得生成的景物图像是基于视点的景物图像。景物图像可以用于最终生成视点图像,视点图像可以用于生成立体图像,由于景物图像是基于视点的,则生成的视点图像也是基于视点的,则最终生成的立体图像带有立体感。由于本装置不需要对顶点着色程序中的相关矩阵进行修改,可以大大减轻了修改的工作量,也避免了没有视图变换矩阵信息的情况下立体图像生成问题。
具体在视点图像生成时,装置3包括如下模块:接收模块302:用于接收到三维场景中一条景物渲染指令;绘制模块301还用于执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;图像生成模块303:用于重复使能接收模块302和绘制模块301,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。一个三维场景中一般包含有多个景物,所有景物渲染完毕后,则整个三维场景也就渲染完毕,即可以得到场景的视点图像。
对于具有特效景物的场景,本装置3可以包括如下处理特效的装置模块:接收模块302:接收到三维场景中一条景物渲染指令;判断模块304:用于判断该指令是否是3D景物渲染指令;在该指令是3D景物渲染指令时,则使能绘制模块301;在该指令不是3D景物渲染指令时执行修改前的顶点着色程序对景物进行处理,生成景物图像;图像生成模块303:用于重复使能接收模块302和判断模块304,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。本装置通过判断模块304对不同的景物进行区分,而后采用不同的顶点着色程序进行渲染,可以得到复杂三维场景的立体图像所需的不同视点的视点图像。
立体图像一般需要两个不同视点的图像,则本装置3可以用于生成不同视点的视点图像,如第一视点图像和第二视点图像。装置3在生成第一视点图像和第二视点图像,绘制模块301还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到同一平面区;或者所述绘制模块301还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区。绘制模块301存储第一视点的景物图像和第二视点的景物图像到同一平面区可以根据预生成的立体图像格式或者显示设备支持的图像格式,直接存储到同一平面区,在所有景物图像渲染完毕后,则同一平面区上会存有一幅立体图像。对于存储在不同平面区的视点图像,本装置3还可以包含有立体图像合成模块305,用于合成第一视点图像和第二视点图像为一幅左右格式、上下格式或重叠格式(如红蓝格式)的立体图像。
进一步地,本装置3还包括如下模块:图像显示或存储模块306。针对与上述不同的图像,图像显示或存储模块306可以用于存储所述同一平面区的图像到存储设备或者在显示设备上显示同一平面区的图像、用于存储立体图像到存储设备或者在显示设备上显示立体图像或者用于存储第一视点图像或第二视点图像到存储设备或者在显示设备上显示第一视点图像或第二视点图像。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
Claims (12)
1.一种图像生成方法,其特征在于,包括如下步骤:
根据视点的第一参数和第二参数生成一段指令,把该指令插入顶点着色程序末尾,用上述修改后的顶点着色程序绘制景物图像。
2.根据权利要求1所述的图像生成方法,其特征在于,所述方法包括如下步骤:
接收到三维场景中一条景物渲染指令;
执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
重复上述步骤,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
3.根据权利要求1所述的图像生成方法,其特征在于,本方法包括如下步骤:
接收到三维场景中一条景物渲染指令;
判断该指令是否是3D景物渲染指令;
如果是则执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
否则执行修改前的顶点着色程序对景物进行处理,生成景物图像;
重复上述步骤,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
4.根据权利要求2或3所述的图像生成方法,其特征在于:所述方法用于生成第一视点图像和第二视点图像,在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到同一平面区。
5.根据权利要求2或3所述的图像生成方法,其特征在于:所述方法用于生成第一视点图像和第二视点图像,在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区。
6.根据权利要求4或5所述的图像生成方法,其特征在于,还包括如下步骤:传输或处理所述图像,存储处理后的图像到存储设备或者在显示设备上显示图像。
7.一种图像生成装置,其特征在于,包括如下模块:
修改模块:用于根据视点的第一参数和第二参数生成一段指令,把该指令插入顶点着色程序末尾;
绘制模块:用于用上述修改后的顶点着色程序绘制景物图像。
8.根据权利要求7所述的图像生成装置,其特征在于,包括如下模块:
接收模块:用于接收到三维场景中一条景物渲染指令;
绘制模块还用于执行该指令对应的修改后的顶点着色程序对景物进行处理,生成景物图像;
图像生成模块:用于重复使能接收模块和绘制模块,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
9.根据权利要求7所述的图像生成装置,其特征在于,包括如下模块:
接收模块:接收到三维场景中一条景物渲染指令;
判断模块:用于判断该指令是否是3D景物渲染指令;在该指令是3D景物渲染指令时,则使能绘制模块;在该指令不是3D景物渲染指令时执行修改前的顶点着色程序对景物进行处理,生成景物图像;
图像生成模块:用于重复使能接收模块和判断模块,直至将整个场景中的所有景物都渲染完毕,生成该场景的视点图像。
10.根据权利要求8或9所述的图像生成装置,其特征在于:所述装置用于生成第一视点图像和第二视点图像,所述绘制模块还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到同一平面区。
11.根据权利要求8或9所述的图像生成装置,其特征在于:所述装置用于生成第一视点图像和第二视点图像,所述绘制模块还用于在生成第一视点的景物图像和第二视点的景物图像时,存储第一视点的景物图像和第二视点的景物图像到不同平面区。
12.根据权利要求10或11所述的图像生成装置,其特征在于,还包括如下模块:图像显示或存储模块,用于传输或处理图像,存储处理后的图像到存储设备或者在显示设备上显示图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620836.1A CN105635707A (zh) | 2014-11-06 | 2014-11-06 | 一种图像生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620836.1A CN105635707A (zh) | 2014-11-06 | 2014-11-06 | 一种图像生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105635707A true CN105635707A (zh) | 2016-06-01 |
Family
ID=56050142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410620836.1A Pending CN105635707A (zh) | 2014-11-06 | 2014-11-06 | 一种图像生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105635707A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091089A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units |
CN101236662A (zh) * | 2007-01-30 | 2008-08-06 | 株式会社东芝 | 生成用于3d显示的cg图像的装置和方法 |
CN101393649A (zh) * | 2007-09-20 | 2009-03-25 | 株式会社东芝 | 多视点图像渲染装置及方法 |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
WO2013140702A1 (ja) * | 2012-03-22 | 2013-09-26 | Necカシオモバイルコミュニケーションズ株式会社 | 画像処理装置、画像処理方法、及びプログラム |
WO2013184534A2 (en) * | 2012-06-06 | 2013-12-12 | Apple Inc. | Non-static 3d map views |
CN103493102A (zh) * | 2011-03-14 | 2014-01-01 | 高通股份有限公司 | 用于基于着色器的图形内容的立体转换 |
WO2014109851A1 (en) * | 2013-01-10 | 2014-07-17 | Qualcomm Incorporated | Stereoscopic conversion with viewing orientation for shader based graphics content |
CN103957400A (zh) * | 2014-05-09 | 2014-07-30 | 北京乐成光视科技发展有限公司 | 一种基于Unity3D游戏引擎的裸眼3D显示系统 |
-
2014
- 2014-11-06 CN CN201410620836.1A patent/CN105635707A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091089A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units |
CN101236662A (zh) * | 2007-01-30 | 2008-08-06 | 株式会社东芝 | 生成用于3d显示的cg图像的装置和方法 |
CN101393649A (zh) * | 2007-09-20 | 2009-03-25 | 株式会社东芝 | 多视点图像渲染装置及方法 |
CN103493102A (zh) * | 2011-03-14 | 2014-01-01 | 高通股份有限公司 | 用于基于着色器的图形内容的立体转换 |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
WO2013140702A1 (ja) * | 2012-03-22 | 2013-09-26 | Necカシオモバイルコミュニケーションズ株式会社 | 画像処理装置、画像処理方法、及びプログラム |
WO2013184534A2 (en) * | 2012-06-06 | 2013-12-12 | Apple Inc. | Non-static 3d map views |
WO2014109851A1 (en) * | 2013-01-10 | 2014-07-17 | Qualcomm Incorporated | Stereoscopic conversion with viewing orientation for shader based graphics content |
CN103957400A (zh) * | 2014-05-09 | 2014-07-30 | 北京乐成光视科技发展有限公司 | 一种基于Unity3D游戏引擎的裸眼3D显示系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105224288B (zh) | 双目三维图形渲染方法及相关系统 | |
CN101477700B (zh) | 面向Google Earth与Sketch Up的真三维立体显示方法 | |
CN102834849A (zh) | 进行立体视图像的描绘的图像描绘装置、图像描绘方法、图像描绘程序 | |
CN101477701B (zh) | 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法 | |
CN101189643A (zh) | 3d图像生成和显示系统 | |
KR20150105399A (ko) | 셰이더 기반의 그래픽스 콘텐츠에 대한 뷰잉 배향에 의한 입체 변환 | |
CN101477702B (zh) | 计算机显卡的植入式真三维立体驱动方法 | |
CN106780759A (zh) | 基于图片构建场景立体全景图的方法、装置及vr系统 | |
CN102819855A (zh) | 二维图像的生成方法及装置 | |
CN103745448A (zh) | 光栅3d显示中超高分辨率合成图像的快速生成方法 | |
CN103632390A (zh) | 一种利用d3d技术实现裸眼3d动画实时制作的方法 | |
CN111327886B (zh) | 3d光场渲染方法及装置 | |
CN101540056B (zh) | 面向ERDAS Virtual GIS的植入式真三维立体渲染方法 | |
CN101521828B (zh) | 面向esri三维gis模块的植入式真三维立体渲染方法 | |
CN101511034A (zh) | 面向Skyline的真三维立体显示方法 | |
CN101488229B (zh) | 面向pci三维分析模块的植入式真三维立体渲染方法 | |
CN105808220B (zh) | 应用程序显示三维立体效果的方法及装置 | |
CN114332356A (zh) | 一种虚实画面结合方法和装置 | |
CN105635707A (zh) | 一种图像生成方法和装置 | |
KR101227183B1 (ko) | 3d 그래픽 모델 입체 렌더링 장치 및 입체 렌더링 방법 | |
De Sorbier et al. | Depth camera based system for auto-stereoscopic displays | |
CN101488232B (zh) | 面向C Tech软件的植入式真三维立体显示方法 | |
CN101482978B (zh) | 面向envi/idl的植入式真三维立体渲染方法 | |
JPH1188910A (ja) | 3次元モデル生成装置、3次元モデル生成方法、3次元モデル生成プログラムを記録した媒体、3次元モデル再生装置、3次元モデル再生方法及び3次元モデル再生プログラムを記録した媒体 | |
CN101488230B (zh) | 面向VirtualEarth的真三维立体显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160601 |
|
WD01 | Invention patent application deemed withdrawn after publication |