CN108564523A - Gpu中一种任意视口变换的实现方法 - Google Patents
Gpu中一种任意视口变换的实现方法 Download PDFInfo
- Publication number
- CN108564523A CN108564523A CN201810328265.2A CN201810328265A CN108564523A CN 108564523 A CN108564523 A CN 108564523A CN 201810328265 A CN201810328265 A CN 201810328265A CN 108564523 A CN108564523 A CN 108564523A
- Authority
- CN
- China
- Prior art keywords
- viewport
- coordinate
- gpu
- screen
- implementation method
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明公开了GPU中一种任意视口变换的实现方法,它通过判断视口的宽和高与最大支持分辨率的关系确定视口变换范围的大小,通过判断视口起始坐标的位置采用坐标平移的方式将视口移动到便于处理的位置,在光栅化完成后再将视口平移回到原来的位置,同时将绘图区范围之外的部分剪切掉,本实现方法包含视口大小比较、视口平移、计算顶点屏幕坐标、光栅化、坐标平移和视口裁剪这几个步骤。
Description
技术领域
本发明主要涉及到GPU设计领域,特指GPU中视口变换的实现。
背景技术
GPU绘制三维物体到二维屏幕上,一般会经历模型-视图变换、投影变换、坐标归一化和视口变换。首先在被显示的物体所在的空间定义一个坐标系,这个坐标系的长度单位和方向要适合被显示物体的描述,这个坐标系称为世界坐标系,视图变换由于修改观察点的位置和方向,模型变换执行物体的旋转、平移、放大、缩小等操作,它们是作用于世界坐标系下的,投影变换的目的是定义一个视景体,视景体决定了一个物体是如何映射到屏幕上的(透视投影还是正投影),并且定义了哪些物体或物体的一部分被裁剪到最终的图像之外,当场景中的物体通过模型视图变换和投影变换之后,位于视景体之外的所有图元均被裁减掉,然后执行透视除法,用顶点的XYZ除以第4个分量W;视口变换也叫屏幕坐标映射,视口是一个矩形区域,最终的图像将映射到这个矩形中,视口会定义一个宽度、高度以及左下角的位置坐标,当配置的宽度和高度超过最大分辨率或左下角坐标有负值时,视口变换将导致一部分图元的光栅化运算出现负数,增加了光栅化操作的复杂性。
发明内容
本发明要解决的问题就在于:提供了一种支持任意视口变换的处理方法,通过判断视口的宽和高与最大支持分辨率的范围确定视口变换范围的大小,通过判断视口起始坐标的位置采用坐标平移的方式将视口移动到便于处理的位置,在光栅化完成后再将视口平移回到原来的位置,同时将绘图区范围之外的部分剪切掉。
发明内容:
本发明公开了GPU中一种任意视口变换的实现方法,通过平移和裁剪实现,在GPU中视口的配置分为视口大小和左下角起始位置两组参数,设配置的视口宽和高分别为WV和HV,其中WV和HV均大于0,GPU支持的最大分辨率宽高分别为MaxW和MaxH,视口左下角屏幕坐标为(XV,YV),当前绘图区分辨率的宽和高分别为WS和HS,其中WS和HS均大于0,对于给定顶点的裁剪后坐标(xc,yc),其中xc∈[-1,+1].yc∈[-1,+1],设视口变换后得到的屏幕坐标为(xs,ys),对任意视口大小和起始位置,本发明的实现方法按照以下步骤执行:
步骤(1):判断视口大小与最大分辨率的关系:若WV>MaxW则WV=MaxW,否则WV不变,若WV>MaxH则HV=MaxH,否则HV不变;
步骤(2):判断视口左下角坐标(XV,YV)与绘图区位置关系,并计算(xc,yc)对应的屏幕坐标(xs,ys):
步骤(3):利用步骤(2)得到的图元的屏幕坐标(xs,ys)对图元执行光栅化操作,得到图元内部的各个片段坐标(xF,yF);
步骤(4):平移回到原位置并执行裁剪操作:将步骤(3)得到的光栅化后片段(xF,yF)左移SR,然后下移ST,即片段坐标变为(xF-SR,yF-ST),对满足0≤xF-SR≤Ws且0≤yF-ST≤Hs条件的片段保留,进入下一级处理,否则丢弃该片段;
对于本发明实现方法的进一步限定,所述步骤(2)中的判断视口左下角坐标(XV,YV)与绘图区位置关系并计算(xc,yc)对应的屏幕坐标(xs,ys)的实现方法为:
(1)若XV>WS或XV>HS,则不会绘制任何内容,所有图元均丢弃;
(2)若XV≤WS且XV≤HS,则:若XV<0,则将视口右移SR=|XV|,同时利用公式计算xc对应的屏幕X坐标;若XV≥0,视口右移量SR=0,同时利用公式计算xc对应的屏幕X坐标;若XV<0,则将视口上移ST=|XV|,同时利用公式计算yc对应的屏幕Y坐标;若XV≥0,视口上移量ST=0,同时利用公式计算yc对应的屏幕Y坐标;
本发明的优点就在于:1、该方法可以实现任意视口大小和任意左下角位置的视口变换;2、只需要增加光栅化后的一个判断,不会增加光栅化算法的复杂度。
附图说明
图1是本发明GPU中一种支持任意视口变换的处理方法实现结构图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明公开了GPU中一种任意视口变换的实现方法,通过平移和裁剪实现,由外部CPU通过总线配置视口的宽和高分别为WV和HV,其中WV和HV均大于0,配置支持的最大分辨率宽高分别为MaxW和MaxH,配置视口左下角屏幕坐标为(XV,YV),当前绘图区分辨率的宽和高分别为WS和HS,其中WS和HS均大于0,对于给定顶点的裁剪后坐标(xc,yc),其中xc∈[-1,+1],yc∈[-1,+1],设视口变换后得到的屏幕坐标为(xs,ys),对任意视口大小和起始位置,本发明的实现方法按照以下步骤执行:
步骤(1):判断视口大小与最大分辨率的关系:若WV>MaxW则WV=MaxW,否则WV不变,若HV>MaxH则HV=MaxH,否则HV不变;
步骤(2):判断视口左下角坐标(XV,YV)与绘图区位置关系,并计算(xc,yc)对应的屏幕坐标(xs,ys):
1)若XV>WS或XV>HS,则不会绘制任何内容,所有图元均丢弃;
2)若XV≤WS且XV≤HS,则:若XV<0,则将视口右移SR=|XV|,同时利用公式计算xc对应的屏幕X坐标;若XV≥0,视口右移量SR=0,同时利用公式计算xc对应的屏幕X坐标;若XV<0,则将视口上移ST=|XV|,同时利用公式计算yc对应的屏幕Y坐标;若XV≥0,视口上移量ST=0,同时利用公式计算yc对应的屏幕Y坐标;
步骤(3):利用步骤(2)得到的图元的屏幕坐标(xs,ys)对图元执行光栅化操作,得到图元内部的各个片段坐标(xF,yF);
步骤(4):平移回到原位置并执行裁剪操作:将步骤(3)得到的光栅化后片段(xF,yF)左移SR,然后下移ST,即片段坐标变为(xF-SR,yF-ST),对满足0≤xF-SR≤Ws且0≤yF-ST≤Hs条件的片段保留,进入下一级处理,否则丢弃该片段。
Claims (2)
1.GPU中一种任意视口变换的实现方法,其特征为:通过平移和裁剪实现,在GPU中视口的配置分为视口大小和左下角起始位置两组参数,设配置的视口宽和高分别为WV和HV,其中WV和HV均大于0,GPU支持的最大分辨率宽高分别为MaxW和MaxH,视口左下角屏幕坐标为(XV,YV),当前绘图区分辨率的宽和高分别为WS和HS,其中WS和HS均大于0,对于给定顶点的裁剪后坐标(xc,yc),其中xc∈[-1,+1],yc∈[-1,+1],设视口变换后得到的屏幕坐标为(xs,ys),对任意视口大小和起始位置,本发明的实现方法按照以下步骤执行:
步骤(1):判断视口大小与最大分辨率的关系:若WV>MaxW则WV=MaxW,否则WV不变,若HV>MaxH则HV=MaxH,否则HV不变;
步骤(2):判断视口左下角坐标(XV,YV)与绘图区位置关系,并计算(xc,yc)对应的屏幕坐标(xs,ys);
步骤(3):利用步骤(2)得到的图元的屏幕坐标(xs,ys)对图元执行光栅化操作,得到图元内部的各个片段坐标(xF,yF);
步骤(4):平移回到原位置并执行裁剪操作:将步骤(3)得到的光栅化后片段(xF,yF)左移SR,然后下移ST,即片段坐标变为(xF-SR,yF-ST),对满足0≤xF-SR≤Ws且0≤yF-ST≤Hs条件的片段保留,进入下一级处理,否则丢弃该片段。
2.GPU中一种任意视口变换的实现方法,其特征为:所述步骤(2)中的判断视口左下角坐标(XV,YV)与绘图区位置关系并计算(xc,yc)对应的屏幕坐标(xs,ys)的实现方法为:
(1)若XV>WS或XV>HS,则不会绘制任何内容,所有图元均丢弃;
(2)若XV≤WS且XV≤HS,则:若XV<0,则将视口右移SR=|XV|,同时利用公式计算xc对应的屏幕X坐标;若XV≥0,视口右移量SR=0,同时利用公式计算xc对应的屏幕X坐标;若XV<0,则将视口上移ST=|XV|,同时利用公式计算yc对应的屏幕Y坐标;若YV≥0,视口上移量ST=0,同时利用公式计算yc对应的屏幕Y坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810328265.2A CN108564523B (zh) | 2018-04-12 | 2018-04-12 | Gpu中一种任意视口变换的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810328265.2A CN108564523B (zh) | 2018-04-12 | 2018-04-12 | Gpu中一种任意视口变换的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108564523A true CN108564523A (zh) | 2018-09-21 |
CN108564523B CN108564523B (zh) | 2022-12-06 |
Family
ID=63534802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810328265.2A Active CN108564523B (zh) | 2018-04-12 | 2018-04-12 | Gpu中一种任意视口变换的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108564523B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0380459A2 (en) * | 1989-01-23 | 1990-08-01 | International Business Machines Corporation | Interactive computer graphics display system processing method for identifying an operator selected displayed object |
CN102044084A (zh) * | 2009-10-22 | 2011-05-04 | 上海杉达学院 | 三维图形的二维平面表现方法 |
CN106127859A (zh) * | 2016-06-28 | 2016-11-16 | 华中师范大学 | 一种移动增强现实型涂鸦绘本的真实感生成方法 |
-
2018
- 2018-04-12 CN CN201810328265.2A patent/CN108564523B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0380459A2 (en) * | 1989-01-23 | 1990-08-01 | International Business Machines Corporation | Interactive computer graphics display system processing method for identifying an operator selected displayed object |
CN102044084A (zh) * | 2009-10-22 | 2011-05-04 | 上海杉达学院 | 三维图形的二维平面表现方法 |
CN106127859A (zh) * | 2016-06-28 | 2016-11-16 | 华中师范大学 | 一种移动增强现实型涂鸦绘本的真实感生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108564523B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11012620B2 (en) | Panoramic image generation method and device | |
US9916676B2 (en) | 3D model rendering method and apparatus and terminal device | |
CN109359618B (zh) | 一种图像处理方法及其装置、设备和存储介质 | |
US10354358B2 (en) | Image generation device, coordinate transformation table creation device and creation method | |
US20110050685A1 (en) | Image processing apparatus, image processing method, and program | |
CN101339669A (zh) | 基于正侧面影像的三维人脸建模方法 | |
CN103761765B (zh) | 基于映射边界优化的三维物体模型纹理映射方法 | |
EP3101621A2 (en) | Overhead image generation apparatus | |
US10412359B2 (en) | Method for generating a virtual image of vehicle surroundings | |
US20220319145A1 (en) | Image processing device, image processing method, moving device, and storage medium | |
JP3507057B2 (ja) | 三角形ポリゴン描画装置および三角形ポリゴン描画方法 | |
CN106780308B (zh) | 一种图像透视变换方法 | |
JP2009151602A (ja) | 輪郭抽出装置と輪郭抽出方法及び輪郭抽出プログラム | |
EP2034444B1 (en) | Method for rotating images | |
CN106156471B (zh) | 一种多层次流场可视化方法 | |
CN108564523A (zh) | Gpu中一种任意视口变换的实现方法 | |
CN113345074A (zh) | 一种车载3d环视影像显示方法 | |
CN110189250B (zh) | 图片裁剪方法 | |
JP2010238110A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN111127614A (zh) | 模型的描边处理方法、装置、存储介质及终端 | |
CN101739703B (zh) | 用于对三角形进行栅格化的方法和系统 | |
CN114741188A (zh) | 图形元素处理方法、装置、电子设备及存储介质 | |
CN107967716B (zh) | 一种基于立体图片的缩略图显示控制方法及系统 | |
CN107133911B (zh) | 一种倒车影像显示方法及装置 | |
CN104134201A (zh) | 纹理图像拼接的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |