CN114463400A - 一种基于纹理对象分割的纹理采样方法与系统 - Google Patents
一种基于纹理对象分割的纹理采样方法与系统 Download PDFInfo
- Publication number
- CN114463400A CN114463400A CN202210071725.4A CN202210071725A CN114463400A CN 114463400 A CN114463400 A CN 114463400A CN 202210071725 A CN202210071725 A CN 202210071725A CN 114463400 A CN114463400 A CN 114463400A
- Authority
- CN
- China
- Prior art keywords
- sampling
- new
- texture object
- component
- color
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于纹理对象分割的纹理采样方法与系统,其中,纹理采样方法包括:预处理步骤,纹理对象分割步骤,采样指令重写步骤,采样指令调用步骤和采样结果重组步骤;本发明将像素位宽大于采样位宽,颜色分量的数量为2个以上且所有的分量位宽均小于采样位宽的纹理对象分割为多个新的纹理对象,新的纹理对象的像素格式是纹理单元支持的像素格式;然后分别对每个新的纹理对象进行纹理采样,并对采样结果进行重组,生成一个最终的采样颜色值;本发明仅在首次对纹理对象进行纹理采样时进行纹理对象分割操作并生成采样指令集,对该纹理对象的重复纹理采样只需调用采样指令集即可。
Description
技术领域
本发明属于图像处理技术领域,更具体地,涉及一种基于纹理对象分割的纹理采样方法与系统。
背景技术
图形渲染是一种将二维或三维图形转化为计算机可以显示的二维图像的技术。广泛应用于计算机辅助设计、地理信息系统、虚拟现实等领域。
纹理一般指一张2维平面图像;纹理采样是从纹理对象中获取颜色值并提供给着色器程序进行图形渲染的行为。现有的纹理采样方法主要包括两类,一类是通过三维图形流水线来进行纹理采样,进而得到与纹理相对应的纹理采样结果数据;一类是使用通用计算流水线来实现纹理采样器。
纹理采样的流程如下:PC机的显卡中包含图形处理器GPU,GPU包含两个硬件单元:着色单元和纹理单元;着色语言编译器是安装在同一PC机上的一种软件模块,用于编译着色器程序之后传送给着色单元,并由着色单元执行该程序;纹理采样指令是着色器程序中的一类指令;着色器程序控制纹理单元执行纹理采样操作:纹理单元根据纹理采样指令获取纹理对象和采样坐标;并以纹理对象的左下角为原点建立坐标系,在显卡的显存中查找采样坐标对应的采样颜色值,传送给着色器程序;其中,纹理单元查找采样颜色值的过程如下:
1)选取像素点:按预先设定的规则选取紧挨采样坐标的4个或8个或其他数量的像素点;以下过程以4个像素点为例;
2)提取颜色分量:将采样位宽的值更新为纹理对象的像素位宽的值,并根据像素位宽的值设置对应的采样方式,不同的像素位宽对应不同的采样方式;根据设置好的采样方式,对选取的每个像素点,将其对应的存储空间中的数据取出来;根据纹理对象对应的像素格式,使用移位和逻辑运算指令从取得的数据中提取出各个颜色分量的分量值,并生成一个新的颜色值;
3)生成采样颜色值:分别对各个像素点生成的新的颜色值的每个颜色分量取平均值,4个平均值即为采样颜色值的4个颜色分量的分量值。
然而在设计纹理单元时,除了诸多客观条件的限制外,还需要考虑支持像素格式数量的问题和纹理单元的利用率问题。按现行的图形标准,如果要支持尽量多类型的纹理,纹理单元的采样位宽必须按照所有像素格式中较大的像素位宽进行设计,但由于实际使用场景中这样的纹理对象的使用频率很低,导致大部分场景下纹理单元硬件资源的浪费,利用率低下;如果纹理单元的采样位宽按照常用像素格式的像素位宽进行设计,这样的纹理单元在大多数场景下的利用率有所提高,但无法对像素位宽更高的像素格式进行采样。
当某种像素格式的像素位宽大于采样位宽时,纹理单元将该像素格式判定为不支持的像素格式,不对该像素格式进行纹理采样操作;现有技术均未给该问题的解决方法。
为了便于理解本发明,以下对有关术语和相关概念进行解释:
颜色值:每个像素点均对应一个颜色值,颜色值为最多包含4个颜色分量的数据,4个颜色分量的名称分别为红、绿、蓝和透明度;颜色分量的值称为分量值;分量值的位宽用位数表示,称为分量位宽;各个分量位宽相加得到像素位宽;一个颜色值的存储需要占用一个存储空间,存储空间的位宽与像素位宽一致,存储空间从其起始存储位置开始连续存储颜色值的各个分量值;
纹理对象:一个纹理对象对应一个矩形图片和一个纹理参数集,矩形图片由像素点组成,纹理参数集包括像素格式、宽度、高度和起始存储地址;一个纹理对象对应一种像素格式,该纹理对象中所有像素点的像素格式均相同;像素格式包括像素点的颜色分量的数量,名称,分量存储顺序和各个颜色分量的分量位宽;其中,宽度为矩形图片的横向的像素点的数量,高度为矩形图片的纵向的像素点的数量,分量存储顺序为一个颜色值的所有颜色分量的分量值在其对应的存储空间中的存储顺序;常用的像素格式包括RGB16,RGBA8,RGB565,RGB32F等;以RGB565为例,像素格式为RGB565的像素点的颜色分量的数量为3个,名称分别为红,绿和蓝;红的分量位宽为5位,绿的分量位宽为6位,蓝的分量位宽为5位;像素位宽为16位;分量存储顺序为红绿蓝;本发明中的纹理对象指的是像素位宽大于采样位宽,颜色分量的数量为2个以上,且所有的分量位宽均小于采样位宽的纹理对象;
像素点的存储顺序:一个纹理对象包含的所有像素点的颜色值按其纹理参数集中的长度、宽度和起始存储地址存储在显卡的显存中,从起始存储地址开始存储第一行从左到右的像素点的颜色值,再存储第二行从左到右的像素点的颜色值……依次类推,直到所有像素点的颜色值全部存储完毕;
采样坐标:以纹理对象的左下角为原点建立坐标系,原点坐标为(0,0),右上角的坐标为(1,1);采样坐标为该坐标系中的一个采样点的坐标,纹理单元根据采样坐标从纹理对象中获得颜色值;
采样位宽:纹理单元从纹理对象中获取紧挨采样点的像素点的颜色值时,从单个像素点的颜色值对应的存储空间中最多能获取的位数;
着色器程序:由若干条着色器指令组成的一个指令序列;
采样指令:着色器程序中的一种指令,一个纹理采样指令包含一个句柄和一个采样坐标,其中句柄对应一个纹理对象;采样坐标为变量,调用采样指令时可以修改采样坐标的值。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于纹理对象分割的纹理采样方法与系统,旨在解决对像素位宽大于采样位宽,颜色分量的数量为2个以上,且所有的分量位宽均小于采样位宽的纹理对象进行纹理采样的问题。
为实现上述目的,本发明提供了一种纹理对象分割方法,用于对单个纹理对象进行分割操作;
根据所述单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
包括以下步骤:
步骤(1):
对于单个纹理对象,判断是否A+B>M,是则执行步骤(2),否则执行步骤(8);
步骤(2):
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(3);
步骤(3):
判断是否B+C>M,是则执行步骤(4),否则执行步骤(6);
步骤(4):
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行步骤(5);
步骤(5):
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
步骤(6):
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(7);
步骤(7):
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(8):
判断是否A+B+C>M,是则执行步骤(9),否则对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(9):
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行步骤(10);
步骤(10):
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
所述新的像素点的颜色值的存储空间的位宽与采样位宽一致,所述存储空间中不足采样位宽的每个存储位置均存储“0”。
优选地,所述分割操作中,每个像素点对应的两个或三个分量值形成一个新的像素点时,分量存储顺序为:将所述两个或三个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序。
本发明提供了一种基于上述纹理对象分割方法的纹理采样方法,包括以下步骤:
(1)预处理步骤:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对所述纹理对象进行纹理采样的指令,则执行步骤(2);否则执行步骤(4);
所述原始采样指令为当前正在编译的采样指令;
(2)纹理对象分割步骤:
根据权利要求1所述的纹理对象分割方法,将所述纹理对象分割为多个新的纹理对象,组成纹理对象集;
(3)采样指令重写步骤:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
(4)采样指令调用步骤:
将所述纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为所述原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
(5)采样结果重组步骤:
所述采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据所述每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
优选地,所述采样结果重组步骤中,返回一个采样颜色值的过程为:
(1)按预先设定的规则,在所述每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从所述存储空间中的数据中提取出各个颜色分量的分量值,并根据所述每个新的纹理对象对应的像素格式,生成一个新的颜色值;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回所述每个新的纹理对象对应的采样颜色值;
所述采样结果重组步骤中,重组为一个最终的采样颜色值的过程为:
(1)对所述每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值。
本发明提供了一种纹理对象分割系统,用于对单个纹理对象进行分割操作;
根据所述单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
包括以下模块:
第一模块:
对于单个纹理对象,判断是否A+B>M,是则执行第二模块中的操作,否则执行第八模块中的操作;
第二模块:
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第三模块中的操作;
第三模块:
判断是否B+C>M,是则执行第四模块中的操作,否则执行第六模块中的操作;
第四模块:
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行第五模块中的操作;
第五模块:
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
第六模块:
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第七模块中的操作;
第七模块:
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第八模块:
判断是否A+B+C>M,是则执行第九模块中的操作,否则对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第九模块:
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行第十模块中的操作;
第十模块:
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
所述新的像素点的颜色值的存储空间的位宽与采样位宽一致,所述存储空间中不足采样位宽的每个存储位置均存储“0”。
优选地,所述分割操作中,每个像素点对应的两个或三个分量值形成一个新的像素点时,分量存储顺序为:将所述两个或三个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序。
本发明提供了一种基于权利要求5所述的纹理对象分割系统的纹理采样系统,包括以下模块:
预处理模块:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对所述纹理对象进行纹理采样的指令,则执行纹理对象分割模块中的操作;否则执行采样指令调用模块中的操作;
所述原始采样指令为当前正在编译的采样指令;
纹理对象分割模块:
根据权利要求1所述的纹理对象分割系统,将所述纹理对象分割为多个新的纹理对象,组成纹理对象集;
采样指令重写模块:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
采样指令调用模块:
将所述纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为所述原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
采样结果重组模块:
所述采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据所述每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
优选地,所述采样结果重组模块中,返回一个采样颜色值的操作为:
(1)按预先设定的规则,在所述每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从所述存储空间中的数据中提取出各个颜色分量的分量值,并根据所述每个新的纹理对象对应的像素格式,生成一个新的颜色值;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回所述每个新的纹理对象对应的采样颜色值;
所述采样结果重组模块中,重组为一个最终的采样颜色值的操作为:
(1)对所述每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值。
本发明提供了一种基于纹理对象分割的纹理采样装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如上所述的纹理采样方法。
本发明提供了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的纹理采样方法。
通过本发明所构思的以上技术方案,与现有技术相比,由于本发明将像素位宽大于采样位宽,颜色分量的数量为2个以上且所有的分量位宽均小于采样位宽的纹理对象分割为多个新的纹理对象,新的纹理对象的像素格式是纹理单元支持的像素格式,因而使得纹理单元能够对分割后的新的纹理对象进行纹理采样;
本发明分别对每个新的纹理对象进行纹理采样,并对采样结果进行重组,生成一个最终的采样颜色值;本发明仅在首次对纹理对象进行纹理采样时进行纹理对象分割操作并生成采样指令集,对该纹理对象的重复纹理采样只需调用采样指令集即可;因而使得对同一纹理对象的纹理采样操作简单又快捷;
本发明中新的纹理对象的每个像素点的颜色值的存储空间的位宽与采样位宽一致,存储空间中不足采样位宽的每个存储位置均存储“0”;对单个新的纹理对象进行纹理采样时,对选取的每个像素点,将其对应的存储空间中的数据取出来;从而避免了现有技术中“对不同的像素位宽设置不同的采样方式”的操作,使得不同像素位宽的像素点均采用同样的采样方式。
附图说明
图1是本发明实施例提供的纹理对象分割方法的流程图;
图2是本发明实施例提供的纹理采样方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例提供了一种纹理对象分割方法,用于对单个纹理对象进行分割操作;
根据单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
包括以下步骤:
步骤(1):
对于单个纹理对象,判断是否A+B>M,是则执行步骤(2),否则执行步骤(8);
步骤(2):
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(3);
步骤(3):
判断是否B+C>M,是则执行步骤(4),否则执行步骤(6);
步骤(4):
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行步骤(5);
步骤(5):
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
步骤(6):
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(7);
步骤(7):
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(8):
判断是否A+B+C>M,是则执行步骤(9),否则执行对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(9):
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行步骤(10);
步骤(10):
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
新的像素点的颜色值的存储空间的位宽与采样位宽一致,存储空间中不足采样位宽的每个存储位置均存储“0”。新的纹理对象的纹理参数集包括新的纹理对象的像素格式、长度、宽度和起始存储地址;其中,像素格式包括新的像素点的颜色分量的数量,名称,分量存储顺序和各个颜色分量的分量位宽;分量存储顺序为:将每个像素点对应的多个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序;
其中,采样位宽为16位;纹理对象对应的像素格式为RGB16,颜色分量的数量为3个,分量位宽为16位,分量存储顺序为:红、绿、蓝;
M的值为16;A表示红的分量位宽,值为16;B表示绿的分量位宽,值为16;C表示蓝的分量位宽,值为16:
步骤(1):
对于单个纹理对象,判断A+B>M,执行步骤(2);
步骤(2):
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量不为2,执行步骤(3);
步骤(3):
判断B+C>M,执行步骤(4);
步骤(4):
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量为3,对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束。
由于本发明将像素位宽大于采样位宽,颜色分量的数量为2个以上且所有的分量位宽均小于采样位宽的纹理对象分割为多个新的纹理对象,新的纹理对象的像素格式是纹理单元支持的像素格式,因而使得纹理单元能够对分割后的新的纹理对象进行纹理采样。
如图2所示,本实施例提供一种基于上述纹理对象分割方法的纹理采样方法,包括以下步骤:
(1)预处理步骤:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对纹理对象进行纹理采样的指令,则执行步骤(2);否则执行步骤(4);
原始采样指令为当前正在编译的采样指令;
(2)纹理对象分割步骤:
根据上述纹理对象分割方法,将纹理对象分割为多个新的纹理对象,组成纹理对象集;其中,新的纹理对象的数量为3个;3个新的纹理对象对应的像素格式中的颜色分量均只包含一个,分别为红、绿和蓝;
(3)采样指令重写步骤:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
本实施例将采样指令集封装为一个函数,该函数接收一个输入参数,函数内每个采样指令使用输入参数作为采样坐标;将原始采样指令的采样坐标作为输入参数,调用采样指令集函数;
(4)采样指令调用步骤:
将纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
本实施例中,将原始采样指令的采样坐标作为输入参数,调用纹理对象对应的采样指令集函数;
(5)采样结果重组步骤:
采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
其中,返回一个采样颜色值的过程为:
(1)按预先设定的规则,在每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;其中,预先设定的规则为本领域通用的规则;像素点的数量为4个;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从存储空间中的数据中提取出各个颜色分量的分量值,并根据每个新的纹理对象对应的像素格式,生成一个新的颜色值;其中,移位和逻辑运算指令为本领域的常用操作;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回每个新的纹理对象对应的采样颜色值;3个采样颜色值中包含的颜色分量均只包含一个,分别为红、绿和蓝;
重组为一个最终的采样颜色值的过程为:
(1)对每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值;最终的采样颜色值中包含的颜色分量为3个:红、绿和蓝;
本实施例分别对每个新的纹理对象进行纹理采样,并对采样结果进行重组,生成一个最终的采样颜色值;本发明仅在首次对纹理对象进行纹理采样时进行纹理对象分割操作并生成采样指令集,对该纹理对象的重复纹理采样只需调用采样指令集即可;因而使得对同一纹理对象的纹理采样操作简单又快捷;
本实施例中新的纹理对象的每个像素点的颜色值的存储空间的位宽与采样位宽一致,存储空间中不足采样位宽的每个存储位置均存储“0”;对单个新的纹理对象进行纹理采样时,对选取的每个像素点,将其对应的存储空间中的数据取出来;从而避免了现有技术中“对不同的像素位宽设置不同的采样方式”的操作,使得不同像素位宽的像素点均采用同样的采样方式。
本实施例提供了一种纹理对象分割系统,用于对单个纹理对象进行分割操作;
根据单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
包括以下模块:
第一模块:
对于单个纹理对象,判断是否A+B>M,是则执行第二模块中的操作,否则执行第八模块中的操作;
第二模块:
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第三模块中的操作;
第三模块:
判断是否B+C>M,是则执行第四模块中的操作,否则执行第六模块中的操作;
第四模块:
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行第五模块中的操作;
第五模块:
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
第六模块:
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第七模块中的操作;
第七模块:
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第八模块:
判断是否A+B+C>M,是则执行第九模块中的操作,否则对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第九模块:
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行第十模块中的操作;
第十模块:
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在纹理对象中的坐标一一对应;
新的像素点的颜色值的存储空间的位宽与采样位宽一致,存储空间中不足采样位宽的每个存储位置均存储“0”;分量存储顺序为:将每个像素点对应的多个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序;
本实施例提供了一种基于上述纹理对象分割系统的纹理采样系统,包括以下模块:
预处理模块:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对纹理对象进行纹理采样的指令,则执行纹理对象分割模块中的操作;否则执行采样指令调用模块中的操作;
原始采样指令为当前正在编译的采样指令;
纹理对象分割模块:
根据权利要求1的纹理对象分割系统,将纹理对象分割为多个新的纹理对象,组成纹理对象集;
采样指令重写模块:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
采样指令调用模块:
将纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
采样结果重组模块:
采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
其中,返回一个采样颜色值的操作为:
(1)按预先设定的规则,在每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从存储空间中的数据中提取出各个颜色分量的分量值,并根据每个新的纹理对象对应的像素格式,生成一个新的颜色值;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回每个新的纹理对象对应的采样颜色值;
采样结果重组模块中,重组为一个最终的采样颜色值的操作为:
(1)对每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种纹理对象分割方法,用于对单个纹理对象进行分割操作;
根据所述单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
其特征在于,包括以下步骤:
步骤(1):
对于单个纹理对象,判断是否A+B>M,是则执行步骤(2),否则执行步骤(8);
步骤(2):
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(3);
步骤(3):
判断是否B+C>M,是则执行步骤(4),否则执行步骤(6);
步骤(4):
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行步骤(5);
步骤(5):
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
步骤(6):
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行步骤(7);
步骤(7):
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(8):
判断是否A+B+C>M,若是则执行步骤(9),否则对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
步骤(9):
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行步骤(10);
步骤(10):
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,所述对X对应的颜色分量执行分割操作的过程为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
所述新的像素点的颜色值的存储空间的位宽与采样位宽一致,所述存储空间中不足采样位宽的每个存储位置均存储“0”。
2.如权利要求1所述的纹理对象分割方法,其特征在于,所述分割操作中,每个像素点对应的两个或三个分量值形成一个新的像素点时,分量存储顺序为:将所述两个或三个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序。
3.一种基于权利要求1所述的纹理对象分割方法的纹理采样方法,其特征在于,包括以下步骤:
(1)预处理步骤:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对所述纹理对象进行纹理采样的指令,则执行步骤(2);否则执行步骤(4);
所述原始采样指令为当前正在编译的采样指令;
(2)纹理对象分割步骤:
根据权利要求1所述的纹理对象分割方法,将所述纹理对象分割为多个新的纹理对象,组成纹理对象集;
(3)采样指令重写步骤:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
(4)采样指令调用步骤:
将所述纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为所述原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
(5)采样结果重组步骤:
所述采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据所述每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
4.如权利要求3所述的纹理采样方法,其特征在于,所述采样结果重组步骤中,返回一个采样颜色值的过程为:
(1)按预先设定的规则,在所述每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从所述存储空间中的数据中提取出各个颜色分量的分量值,并根据所述每个新的纹理对象对应的像素格式,生成一个新的颜色值;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回所述每个新的纹理对象对应的采样颜色值;
所述采样结果重组步骤中,重组为一个最终的采样颜色值的过程为:
(1)对所述每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值。
5.一种纹理对象分割系统,用于对单个纹理对象进行分割操作;
根据所述单个纹理对象的颜色分量的数量,依次从字母A、B、C和D中取相同数量的字母表示由小至大的分量位宽的值;
各个分量位宽中若有分量位宽的值相等时,则按照分量存储顺序将顺序靠前的分量值对应的分量位宽判定为较小值,将顺序靠后的分量值对应的分量位宽判定为较大值;
M为采样位宽;
其特征在于,包括以下模块:
第一模块:
对于单个纹理对象,判断是否A+B>M,是则执行第二模块中的操作,否则执行第八模块中的操作;
第二模块:
对A对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断颜色分量的数量是否为2,是则对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第三模块中的操作;
第三模块:
判断是否B+C>M,是则执行第四模块中的操作,否则执行第六模块中的操作;
第四模块:
对B对应的颜色分量执行分割操作,形成第二个新的纹理对象;判断颜色分量的数量是否为3,是则对C对应的颜色分量执行分割操作,形成第三个新的纹理对象;结束;否则执行第五模块中的操作;
第五模块:
判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第三和第四个新的纹理对象;结束;否则对C和D对应的颜色分量执行分割操作;形成第三个新的纹理对象;结束;
第六模块:
判断颜色分量的数量是否为3,是则对B和C对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;否则执行第七模块中的操作;
第七模块:
判断是否B+C+D>M,是则分别对B和C对应的颜色分量、D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;结束;否则对B和C和D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第八模块:
判断是否A+B+C>M,是则执行第九模块中的操作,否则对A和B和C对应的颜色分量执行分割操作,形成第一个新的纹理对象;对D对应的颜色分量执行分割操作,形成第二个新的纹理对象;结束;
第九模块:
判断颜色分量的数量是否为3,是则分别对A和B对应的颜色分量、C对应的颜色分量执行分割操作,对应形成第一和第二个新的纹理对象;结束;否则执行第十模块中的操作;
第十模块:
对A和B对应的颜色分量执行分割操作,形成第一个新的纹理对象;判断是否C+D>M,是则分别对C和D对应的颜色分量执行分割操作,对应形成第二和第三个新的纹理对象;否则对C和D对应的颜色分量执行分割操作,形成第三个新的纹理对象;
当X为A、B、C或D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B、B和C、C和D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的两个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
当X为A和B和C、B和C和D时,所述对X对应的颜色分量执行分割操作的操作为:根据像素点的存储顺序,依次将每个像素点中X对应的分量值读取出来,每个像素点对应的三个分量值形成一个新的像素点;所有的新的像素点形成一个新的纹理对象;新的像素点在新的纹理对象中的坐标与其对应的像素点在所述纹理对象中的坐标一一对应;
所述新的像素点的颜色值的存储空间的位宽与采样位宽一致,所述存储空间中不足采样位宽的每个存储位置均存储“0”。
6.如权利要求5所述的纹理对象分割系统,其特征在于,所述分割操作中,每个像素点对应的两个或三个分量值形成一个新的像素点时,分量存储顺序为:将所述两个或三个分量值按照其对应的分量位宽从小到大进行排序,排序的顺序即为分量存储顺序。
7.一种基于权利要求5所述的纹理对象分割系统的纹理采样系统,其特征在于,包括以下模块:
预处理模块:
查找原始采样指令对应的纹理对象,若该原始采样指令为首次对所述纹理对象进行纹理采样的指令,则执行纹理对象分割模块中的操作;否则执行采样指令调用模块中的操作;
所述原始采样指令为当前正在编译的采样指令;
纹理对象分割模块:
根据权利要求1所述的纹理对象分割系统,将所述纹理对象分割为多个新的纹理对象,组成纹理对象集;
采样指令重写模块:
对每个新的纹理对象生成一个采样指令,组成采样指令集;每个采样指令中的采样坐标与其对应的原始采样指令相同;调用采样指令集;
采样指令调用模块:
将所述纹理对象对应的采样指令集中每个采样指令中的采样坐标修改为所述原始采样指令中的采样坐标,得到新采样指令,组成新采样指令集;调用新采样指令集;
采样结果重组模块:
所述采样指令集或新采样指令集中的每个采样指令或每个新采样指令返回一个采样颜色值,根据所述每个新的纹理对象的像素格式,将所有的采样颜色值重组为一个最终的采样颜色值。
8.如权利要求7所述的纹理采样系统,其特征在于,所述采样结果重组模块中,返回一个采样颜色值的操作为:
(1)按预先设定的规则,在所述每个新的纹理对象中选取邻近采样坐标的4个或8个或其他数量的像素点;
(2)对选取的每个像素点,将其对应的存储空间中的数据取出来;使用移位和逻辑运算指令从所述存储空间中的数据中提取出各个颜色分量的分量值,并根据所述每个新的纹理对象对应的像素格式,生成一个新的颜色值;
(3)分别对所有的新的颜色值中每个颜色分量的分量值取平均值,各个平均值即为采样颜色值的各个分量值;
(4)返回所述每个新的纹理对象对应的采样颜色值;
所述采样结果重组模块中,重组为一个最终的采样颜色值的操作为:
(1)对所述每个采样颜色值,根据其对应的新的纹理对象的像素格式,提取出各个颜色分量的名称和分量值;
(2)将提取出的所有的颜色分量组合成一个最终的采样颜色值。
9.一种基于纹理对象分割的纹理采样装置,其特征在于,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求3-4任一项所述的纹理采样方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求3-4任一项所述的纹理采样方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071725.4A CN114463400A (zh) | 2022-01-21 | 2022-01-21 | 一种基于纹理对象分割的纹理采样方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210071725.4A CN114463400A (zh) | 2022-01-21 | 2022-01-21 | 一种基于纹理对象分割的纹理采样方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114463400A true CN114463400A (zh) | 2022-05-10 |
Family
ID=81410398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210071725.4A Pending CN114463400A (zh) | 2022-01-21 | 2022-01-21 | 一种基于纹理对象分割的纹理采样方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114463400A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049532A (zh) * | 2022-08-15 | 2022-09-13 | 南京砺算科技有限公司 | 图形处理器、纹理坐标采样方法、编译方法及装置、介质 |
-
2022
- 2022-01-21 CN CN202210071725.4A patent/CN114463400A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115049532A (zh) * | 2022-08-15 | 2022-09-13 | 南京砺算科技有限公司 | 图形处理器、纹理坐标采样方法、编译方法及装置、介质 |
CN115049532B (zh) * | 2022-08-15 | 2022-11-22 | 南京砺算科技有限公司 | 图形处理器、纹理坐标采样方法、编译方法及装置、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Weiler et al. | Hidden surface removal using polygon area sorting | |
US5434957A (en) | Method and apparatus for generating a color palette | |
EP0989536B1 (en) | Graphic pattern processing apparatus | |
US7463261B1 (en) | Three-dimensional image compositing on a GPU utilizing multiple transformations | |
KR101639852B1 (ko) | 그래픽 프로세싱을 위한 픽셀 값 압축 | |
EP1306810A1 (en) | Triangle identification buffer | |
CN109785417B (zh) | 一种实现OpenGL累积操作的方法及装置 | |
US6052127A (en) | Circuit for determining non-homogenous second order perspective texture mapping coordinates using linear interpolation | |
CN109636885B (zh) | 一种用于h5页面的序列帧动画制作方法和系统 | |
JP2612221B2 (ja) | 図形画像を生成する装置及び方法 | |
CN115439609B (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
CN115509764B (zh) | 一种实时渲染的多gpu并行调度方法、装置及存储器 | |
US7825928B2 (en) | Image processing device and image processing method for rendering three-dimensional objects | |
CN110866965A (zh) | 一种三维模型的贴图绘制方法及装置 | |
CN114463400A (zh) | 一种基于纹理对象分割的纹理采样方法与系统 | |
CN110363837B (zh) | 游戏中纹理图像的处理方法及装置、电子设备、存储介质 | |
CN111798554A (zh) | 一种渲染参数确定方法、装置、设备及存储介质 | |
CN114429513A (zh) | 可见元素的确定方法和装置、存储介质及电子设备 | |
US8232994B2 (en) | Viewing multi-dimensional data in two dimensions | |
CN117611703A (zh) | 弹幕字符的渲染方法、装置、设备、存储介质及程序产品 | |
CN112528596A (zh) | 文字特效的渲染方法、装置、电子设备及存储介质 | |
CN112614210A (zh) | 工程图纸显示方法、系统及相关装置 | |
CN111739074A (zh) | 一种场景多点光源渲染方法及装置 | |
CN115965737A (zh) | 图像渲染方法、装置、终端设备及存储介质 | |
CN115861510A (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 |