GPU中一种任意视口变换的实现方法技术

技术编号:19009935 阅读:58 留言:0更新日期:2018-09-22 09:42
本发明专利技术公开了GPU中一种任意视口变换的实现方法,它通过判断视口的宽和高与最大支持分辨率的关系确定视口变换范围的大小,通过判断视口起始坐标的位置采用坐标平移的方式将视口移动到便于处理的位置,在光栅化完成后再将视口平移回到原来的位置,同时将绘图区范围之外的部分剪切掉,本实现方法包含视口大小比较、视口平移、计算顶点屏幕坐标、光栅化、坐标平移和视口裁剪这几个步骤。

An implementation method of arbitrary viewport transformation in GPU

The invention discloses an implementation method of arbitrary viewport transformation in GPU, which determines the magnitude of viewport transformation range by judging the relationship between viewport width and height and the maximum supporting resolution, and moves the viewport to a position convenient for processing by judging the position of the starting coordinate of the viewport, and moves the viewport to a position convenient for processing by coordinate translation after rasterization. Then the viewport is shifted back to the original position and the part outside the drawing area is cut off. This method includes the following steps: viewport size comparison, viewport translation, calculating vertex screen coordinates, rasterization, coordinate translation and viewport clipping.

【技术实现步骤摘要】
GPU中一种任意视口变换的实现方法
本专利技术主要涉及到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条件的片段保留,进入下一级处理,否则丢弃该片段。本文档来自技高网...
GPU中一种任意视口变换的实现方法

【技术保护点】
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条件的片段保留,进入下一级处理,否则丢弃该片段。...

【技术特征摘要】
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)对图元执行光栅化操作,...

【专利技术属性】
技术研发人员:焦永
申请(专利权)人:长沙景美集成电路设计有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1