CN1465035A - 信息处理装置 - Google Patents
信息处理装置 Download PDFInfo
- Publication number
- CN1465035A CN1465035A CN02802444A CN02802444A CN1465035A CN 1465035 A CN1465035 A CN 1465035A CN 02802444 A CN02802444 A CN 02802444A CN 02802444 A CN02802444 A CN 02802444A CN 1465035 A CN1465035 A CN 1465035A
- Authority
- CN
- China
- Prior art keywords
- prime
- lambda
- coordinate
- matrix
- mentioned
- 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
- 239000011159 matrix material Substances 0.000 claims abstract description 79
- 230000009466 transformation Effects 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 33
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000010365 information processing Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 56
- 238000003672 processing method Methods 0.000 claims description 16
- 210000000056 organ Anatomy 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 21
- 241001673391 Entandrophragma candollei Species 0.000 description 13
- 230000003068 static effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 238000005755 formation reaction Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种信息处理装置,其进行通过下述式(1),表示的仿射变换,在存储部,预先存储有仿射变换的矩阵A与λ(≠0)相乘而形成的矩阵式(2),在进行通过仿射变换,将坐标(x,y,z)t,变换为坐标(x’,y’,z’)t的运算处理的场合,从存储部,读取矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,x’=(α’11*x+α’12*y+α’13*z)/λ+t1;y’=(α’21*x+α’22*y+α’23*z)/λ+t2;z’=(α’31*x+α’32*y+α’33*z)/λ+t3;求出(x’,y’,z’)t。
Description
技术领域
本发明涉及3维图像的绘制的技术,特别是涉及减轻在3维图像的绘制处理时进行的几何运算,除法演算的处理,不具有FPU(浮点运算组件)的信息处理装置,涉及即使在CPU的处理能力较低的信息处理装置中,仍可进行3维图形的绘图处理的技术。
背景技术
在绘制3维图形的场合,信息处理终端进行以下处理:
(1)挪动3维的物体的坐标变换运算(Transformation);
(2)考虑光从光源(比如太阳等)与物体接触,计算向阳的部分和背阴的部分的光源计算处理(Lighting);
(3)将物体分割为称为“点(dot)”的柱形图处理(光栅化处理(rasterize));
(4)在该柱形图中贴入纹理(模样)(纹理映射)
通常,信息处理装置主体的CPU承担(1)与(2)的几何运算的作业,采用CPU的FPU(浮点运算组件)进行处理。
另外,(3)与(4)的光栅化(rasterize)的处理通常由3D图形加速器进行。
但是,(1)和(2)的几何演算的作业采用CPU的FPU(浮点运算组件)而进行,而设计FPU的目的在于不仅进行几何演算,而且一般进行浮点计算,另外CPU还进行其它的处理,不必适合绘制3维图形的处理。
于是,还出现了按照通过图形芯片进行几何演算的方式设计的(即,内部设置有几何发生器)3D图形加速器,其除了实现降低CPU的负荷率的处理以外,与通过CPU进行处理的相比较,比什么都可使几何运算的性能大幅度地提高,即,可使3D的绘图性能提高。
但是,3D图形加速器的价格较高,并不是所有的信息处理装置都配备。
此外,在信息处理装置中,也有下述类型,即,如便携电话,PDA(Personal Digital(Data)Assistants)这样的,不仅不具有3D图形加速器,也不具有FPU(浮点演算机构)的类型。
在这样的信息处理装置中,一般,CPU的能力也较低,3D图形不适合。
还有,除法演算处理的速度大大低于乘法演算处理,为了高速地进行演算处理,最好尽可能地减小除法演算。
于是,本发明的目的在于提供下述技术,其中,在3维图形的绘制的处理时进行的几何演算中,通过进行整数运算处理,即使在不具有FPU(浮点演算机构)的信息处理装置中,仍可进行3维图形的绘制。
本发明的另一目的在于提供下述技术,其中,在光栅化(rasterize)处理时,在不进行除法演算的情况下,进行光栅化(rasterize)处理,由此即使在处理能力较低的CPU的信息处理装置中,仍可高速地进行3维图形的绘制。
发明的公开
实现上述目的的第1项发明涉及下述信息处理装置,在该信息处理装置中,将坐标值限定为整数,并进行将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的3维图像的绘制,其特征在于该信息处理装置包括:
存储器,该存储器存储有仿射变换的矩阵 与λ(≠0)相乘而形成的矩阵
矩阵(t1,t2,t3)t和形状数据;
运算机构,该运算机构在通过矩阵A和矩阵(t1,t2,t3)t的仿射变换,将上述形状数据的坐标(x,y,z)t,变换为坐标(x’,y’,z’)t时,通过上述存储器,读取矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,由此对坐标(x’,y’,z’)t进行运算。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第2项发明涉及上述第1项发明的信息处理装置,其特征在于将上述λ限定为2n(n≥1);
上述运算机构为,通过对下述式的除法运算的结果进行n位右移位D方式进行运算的机构。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第3项发明涉及上述第2项发明的信息处理装置,其特征在于上述运算机构为,通过在将常数λ/2与各被除数相加后,进行n位右移位的方式进行运算的机构。
实现上述目的的第4项发明涉及上述第1、2、3项发明的信息处理装置,其特征在于其包括合成机构,该合成机构将预先乘以λ(≠0)的2个以上的参数合成。
实现上述目的的第5项发明涉及上述第1、2、3、4项发明的信息处理装置,其特征在于其还包括:
存储器,该存储器按照与y坐标的变化量相关的方式,存储有通过下述公式表示的常数μ(λ为2n(n≥1)):
运算机构,该运算机构在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
通过从上述存储器中,读取对应于上述y坐标的变化量的μ,通过乘法运算,对下述公式进行运算,将该计算出的Δx’进行n位右移位,由此对Δx进行运算。
Δx′=μ*(x2-x1)
实现上述目的的第6项发明涉及一种绘图处理方法,该绘图处理方法为,将坐标值限定为整数,将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的3维图像的绘图处理方法,其特征在于该绘图处理方法包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,该场合指通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,由此对坐标(x’,y’,z’)t进行运算。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第7项发明涉及第6项发明的绘图处理方法,其特征在于将上述λ限定为2n(n≥1);
上述运算步骤为,通过对下述式的除法运算的结果进行n位右移位,对坐标(x’,y’,z’)t进行运算的步骤。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第8项发明涉及第7项发明的绘图处理方法,其特征在于在进行n位右移位之前,还包括将各被除数与λ/2进行加法运算的步骤。
实现上述目的的第9项发明涉及第6、7、8项发明的绘图处理方法,其特征在于还包括将预先乘以λ(≠0)的2个以上的参数合成的步骤。
实现上述目的的第10项发明涉及第6、7、8、9项发明的绘图处理方法,其特征在于在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
该方法包括:
读取步骤,在该读取步骤中,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由下述公式表示的常数μ,(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位右移位,由此对Δx进行运算。
实现上述目的的第11项发明涉及一种程序,在该程序中,在信息处理装置中,将坐标值限定为整数,借助坐标(x,y,z)t通过下述式 表示的仿射变换,对变换为坐标(x’,y’,z’)t的变换处理,其特征在于该程序包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,该场合指通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,由此对坐标(x’,y’,z’)t进行运算。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第12项发明涉及第11项发明的程序,其特征在于对于上述程序,在将上述λ限定为2n(n≥1)的场合,
上述运算步骤为,在信息处理装置中,通过对下述式进行除法运算的结果进行n位右移位,由此对坐标(x’,y’,z’)t进行运算的步骤。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第13项发明涉及第12项发明的程序,其特征在于在信息处理装置中,在进行n位移位之前,还包括将各被除数与常数λ/2进行加法运算的步骤。
实现上述目的的第14项发明涉及第11、12、13项发明的程序,其特征在于还包括在信息处理装置中,将预先乘以λ(λ≠0)的2个以上的参数合成的步骤。
实现上述目的的第15项发明涉及第11、12、13、14项发明的程序,其特征在于在信息处理中,在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
该程序还包括下述步骤:
读取步骤,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由 下述公式表示的常数μ(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位移位,由此对Δx进行运算。
实现上述目的的第16项发明涉及记录媒体,该记录媒体存储有下述程序,在该程序中,在信息处理装置中,并进行将坐标值限定为整数,借助坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的变换处理,其特征在于该程序包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,在该场合,通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,由此对坐标(x’,y’,z’)t进行运算。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第17项发明涉及第16项发明的存储有程序的记录媒体,其特征在于上述程序,在将上述λ限定为2n(n≥1)的场合,
上述运算步骤为,在信息处理装置中,通过对下述式进行除法运算的结果进行n位右移位,由此对坐标(x’,y’,z’)t进行运算的步骤。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
实现上述目的的第18项发明涉及第17项发明的存储有程序的记录媒体,其特征在于上述程序还包括在上述信息处理装置中,在进行上述n位右移位之前,将各被除数与常数λ/2进行加法运算的步骤。
实现上述目的的第19项发明涉及第16、17、18项发明的存储有程序的记录媒体,其特征在于上述程序还包括在信息处理装置中,将预先乘以λ/2的2个以上的参数合成的步骤。
实现上述目的的第20项发明涉及第16、17、18、19项发明的存储有程序的记录媒体,其特征在于在信息处理装置中,在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
该程序还包括下述步骤:
读取步骤,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由下述公式表示的常数μ(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位移位,由此对Δx进行运算。
附图说明
图1为便携终端的方框图,图2为表示3维图形的基本绘图动作的流程图,图3为进一步具体地表示在模型物体中,作为绘图步骤的步骤106的动作的流程图。
用于实施本发明的优选形式
下面对用于实施本发明的优选形式进行描述。
首先,采用作为本发明的特征的信息处理装置的整数的几何运算,以及不采用除法的三角形光栅化处理(rasterize)进行描述。
(整数的几何运算)
1.仿射变换的坐标变换
当通过下述形式,表示从坐标(x,y,z)t,朝向坐标(x’,y’,z’)t的仿射变换时, 则在通过C语言的数值运算,计算x’,y’,z’的场合,满足:
x′=a11*x+a12*y+a13*z+t1
y′=a21*x+a22*y+a23*z+t2
z′=a31*x+a32*y+a33*z+t3但是,全部的数值取无限的范围和精度。
在通过有限范围的整数,进行坐标计算的场合,计算精度和运算的外溢成为问题。
就外溢来说,如果限制上述坐标的范围,则不产生问题,但是,当计算精度在将绝对值较小的实数化为整数时(通过包括小数的数值等,将必要的右端的位的下一位的值进行四舍五入等处理,缩小数值。除了四舍五入以外,还具有加上小数点以后的零数,舍去小数点以后的零数等的场合),相对误差较大。特别是,矩阵A的成分的绝对值小于1的场合非常多,在将该数值化为整数的场合,与所期待的结果之间有较大差异。
于是,当将矩阵A的成分化为整数时,为了尽可能地减少相对误差,预先将λ(≠0)与矩阵A的成分相乘。 在通过该矩阵A’进行坐标变换时,按如下进行计算。
在通过C语言的数值运算,计算x’,y’,z’的场合,则满足以下条件,但是,全部的数值型为整数。
x′=(a′11*x+a′12*y+a′13*z)/λ+t1
y′=(a′21*x+a′22*y+a′23*z)/λ+t2
z′=(a′31*x+a′32*y+a′33*z)/λ+t3
同样在这样的计算中,仍为整数计算,不必进行浮点运算,但是,为了高速化而进行的避免整数除法,将λ限定为2n(n≥1),λ’=log2λ,按照下述公式,
x′=((a′11*x+a′12*y+a′13*z)>>λ′)+t1;
y′=((a′21*x+a′22*y+a′23*z)>>λ′)+t2;
z′=((a′31*x+a′32*y+a′33*z)>>λ′)+t3;按照算术右移位,进行与除法基本相同的运算。
另外,在将算术右移位作为整数除法的场合,由于化成整数朝向-∞方向,故按照下述公式,
x′=((a′11*x+a′12*y+a′13*z+λ/2)>>λ′)+t1;
y′=((a′21*x+a′22*y+a′23*z+λ/2)>>λ′)+t2;
z′=((a′31*x+a′32*y+a′33*z+λ/2)>>λ′)+t3;在进行算术右移位之前,添加常数λ/2,进行误差修正。
下面通过具体的实例进行描述,比如,考虑对坐标(111,222,333)t的点进行仿射变换的场合。
如果上述公式2中的矩阵A和t(t1,t2,t3)t为: 则通过实数计算的场合的公式2的结果为: 在这里,如上所述,如果采用本发明的仿射变换,则在λ=4096(212)的场合,矩阵A’为:
在采用上述矩阵A’,矩阵t(t1,t2,t3)t的仿射变换通过C语言的式表示时,则
int x,y,z;
x=((3346*111+-1316*222+1323*333+4096/2)>>12)+856;
y=((1580*111+3723*222+-649*333+4096/2)>>12)+387;
z=((-994*111+1088*222+3822*333+4096/2)>>12)+973;
该计算结果为(991,579,1316)t,得到基本与上述实数的运算结果基本相同的结果。
在信息处理装置的实际处理中,将λ与矩阵A相乘而得到的矩阵A’,与矩阵t(t1,t2,t3)t作为参数而存储于信息处理装置的存储器中,进行仿射变换的坐标变换,此时,从存储器中读取与相应的矩阵A相对应的矩阵A’,以及矩阵t(t1,t2,t3)t,根据该读取的矩阵A’,针对每个元素,进行运算。另外,对该结果与λ/2的和,进行常数λ’次右移处理位,将该结果与矩阵t(t1,t2,t3)t相加,计算坐标。
2.仿射变换的合成
2个仿射变换f,g(变换参数)分别为:
f(p)=Ap+u ...5
g(p)=Bp+v ...6
这2个变换的合成gof为:
gof(p)=BAp+Bu+v ...7
当A’=λA,B’=λB时,
则公式8变为:
上述公式11的右边与公式4的右边为相同的形式。
在通过C语言的数值运算,计算M与t的成分的场合,则
对于for(i=1;i<=3;i++){for(j=1;j<=3;j++)
mij=(bi1*a1j+bi2*a2j+bi3*a3j+λ/2)/λ;
ti=(bi1*u1+bi2*u2+bi3*u3)/λ+vi;}
将λ限定为2n(n≥1),对于λ’=log2λ,通过整数对全部的整数型进行计算时,
对于for(i=1;i<=3;i++){for (j=1;j<=3;j++)
mij=(bi1*a1j+bi2*a2j+bi3*a3j+λ/2)>>λ′;
ti=((bi1*u1+bi2*u2+bi3*u3+λ/2)>>λ′)+vi;}通过该方法,可实现预先乘以λ的仿射变换的合成。下面通过具体的实例进行描述,比如, 当λ=4096时,则 将λA与λB的元素化为最近整数值的矩阵为: 因此,在通过上述的数学公式,计算矩阵M与矩阵t时,则: 就这样,可获得与如上所述进行计算的 基本相同的值。
(不采用除法的三角形光栅化处理(rasterize))
在计算直线上的x坐标的变化量的场合,2维平面上的点P1的坐标表示为(x1,y1),点P2的坐标表示为(x2,y2)。当y1≠y2时,则相对连接P1与P2的直线的y坐标的x坐标的变化量为:
在Δx’=λΔx,通过C语言的数值运算,计算Δx’的场合,则:
Δx′=λ*(x2-x1)/(y2-y1);另外,
此时,Δx′=μ*(x2-x1);象这样,形成乘法的形式。
在仅通过整数进行计算的场合,如果|λ|充分大,|y2-y1|某种程度小,则化为整数的相对误差变小。
于是,如果λ为常数,限制y坐标的范围,则可根据预先配备的较少的排列,获得μ。即,使μ与|y2-y1|相对应,将其预先存储于信息处理装置的存储器中。另外,如果将该|y2-y1|作为指数,读取μ,计算,Δx′=μ*(x2-x1)则可仅通过乘法,求出与Δx基本相同的值Δx’。
另外,如果将λ限制为2n(n≥1),则可通过算术右移位,计算Δx。
于是,在完全不使用除法的情况下,计算x坐标的变化量Δx。
此外,因相同的原因,纹理坐标也不必要求乘法。
作为具体的实例,对λ=65536,坐标(10,20)的开始点P1与坐标(85,120)的开始点P2的线段的实例进行描述。
相对该线段的y坐标的x坐标的变化量为:
则Δx′=λx=49152.0。
在不采用除法,仅仅通过整数,对Δx’进行计算的场合,如上述那样,将120-20=100作为指数,从存储器中,读取相应的μ。
在此场合, 则Δx′=μ×(85-10)=49125。于是,可获得与采用除法的Δx’=λx=49152.0基本相同的值。
下面对上述的方法用于便携终端等的场合进行描述。
图1为便携终端的方框图。
在图1中,标号1为表示3维图形的显示器,标号2为作为运算机构的控制部,该控制部由不具有FPU(浮点运算组件)的CPU等构成,标号3为存储有程序,数据的存储部。
另外,在存储部3中,存储有变换参数表4,在该变换参数表4中,存储有变换参数(上述的矩阵A’,矩阵t(t1,t2,t3)t);倒数表5,在该倒数表5中,以该|y2-y1|作为指数,存储有μ。
在下面描述的3维图形的绘制中,将物体均以多角形的平面的组合来表现。另外,将该多角形称为多边形。位于3维空间的物体(多边形)具有X,Y,Z的3个坐标值,通过使坐标运动,可改变物体的位置,方向。另外,为了将通过3维坐标表现的内容,最终显示于2维的屏幕中,进行朝向屏幕坐标系统的变换。
这样的,一系列的坐标变换、透射变换、光源计算等的处理(运算)称为“几何运算”。另外,将通过计算而变换的多边形最终写入到帧缓冲存储器中,进行绘图。
通常,几何运算的处理采用CPU的FPU(浮点运算组件)进行,但是FPU的设计目的不仅用于几何运算,而且还一般用于计算浮点。另外,在以便携电话为代表的便携终端的设备中,由于价格增加的原因,大多不具有FPU(浮点运算组件)。
于是,即使在便携终端这样的,不具有FPU(浮点运算组件)的CPU的信息处理装置中,为了可进行几何运算,按照本发明,控制部3进行整数的几何运算。
另外,即使对于将物体分割为点(dot)的光栅化处理(rasterize),在不具有3D图形加速器的便携终端中,仍处理负荷增加。
于是,按照本发明,为了减轻处理负荷,控制部3不采用除法,而对三角形进行光栅化处理(rasterize)。
下面,对采用控制部3所进行的,上述的运算的3维图形的绘制动作进行描述。
图2为表示3维图形的基本绘制动作的流程图。
首先,设定绘图方的假想帧缓冲存储器的信息(步骤100)。
接着,从存储部3,将作为几何坐标数据的形状数据读入到模型物体中(步骤101)。
在这里读入的形状数据包括顶点坐标列,多边形列和图段列的信息。另外,在图段的数据中,包括基本姿势用的变换参数、所属顶点组和母图段的ID(识别信息)。
此外,所读取的变换参数为将λ(2n(n≥1))与基本的矩阵A相乘而得到的矩阵A’和矩阵t(t1,t2,t3)t,该矩阵A’和矩阵t(t1,t2,t3)t从变换参数表4读取。
然后,读入与形状数据相对应的纹理数据,比如,质感等的数据(步骤102)。
之后,设定从模型坐标系统,到视点坐标系统的变换参数(步骤103),设定从视点坐标系统,到屏幕坐标系统的变换参数(步骤104)。
在假想帧缓冲存储器中,绘制2维的背景(步骤105)。
在该假想帧缓冲存储器中,绘制模型物体(步骤106)。
最后,在实际的画面中,显示上述假想帧缓冲存储器的内容(步骤107)。
接着,通过反复进行步骤103~步骤107,绘制3维图形。
下面对控制部3绘制采用作为本发明的特征的运算的模型物体的图形的步骤106进行更加具体的描述。
图3为更加具体地表示作为绘制模型物体的图形的步骤的步骤106的动作的流程图。
首先,将模型的顶点坐标从局部坐标系统,变换为屏幕坐标系统(步骤200)。
在这里,对模型的结构进行描述。通常,在模型的内部,具有多个图段,各图段具有多个顶点。这些顶点具有图段坐标系统的坐标值。图段可具有多个子图段,具有变换参数,该变换参数用于将在图段中的顶点的坐标变换为母图段坐标系统。最上位的图段所具有的变换参数为用于将该图段所具有的顶点的坐标变换为模型坐标系统的值。另外,还具有基本姿势用的变换参数的信息。
于是,为了将具有图段坐标系统的坐标值的模型的顶点坐标从局部坐标系统,变换为屏幕坐标系统,首先,进行从图段坐标系统,到模型坐标系统的变换。
从图段坐标系统,到模型坐标系统的变换参数的计算通过上述整数的几何运算的仿射变换的合成进行。
在具有母图段的图段的场合,合成图段所具有的变换参数f,以及从母图段的变换参数坐标系统,到模型坐标系统的变换参数g合成,形成从图段坐标系统,到模型坐标系统的变换参数h=gof。
在该合成时,采用上述的仿射变换的合成方式。
另外,在不具有母图段的图段的场合,如果图段所具有的变换参数由f表示,则从图段坐标系统,到模型坐标系统的变换参数为h=f。
下面对从模型坐标系统,到屏幕坐标系统的变换进行描述。
从模型坐标系统,到屏幕坐标系统的变换参数也通过相同的方法计算。
如果从模型坐标系统,到视点坐标系统的变换参数由p表示,从视点坐标系统,到屏幕坐标系统的变换参数由q表示,则从模型坐标系统,到屏幕坐标系统的变换参数r=qop。
最后,根据象上述那样计算的,从图段坐标系统,到模型坐标系统的变换参数h,以及从模型坐标系统,到屏幕坐标系统的变换参数r,计算从图段坐标系统,到屏幕坐标系统的变换参数s。
从图段坐标系统,到屏幕坐标系统的变换参数s与上述的合成相同,为s=roh。h必须针对每个图段进行计算,但是,r在1体的模型的计算中,只须计算1次。
采用象这样计算的变换参数s,将图段坐标系统的顶点坐标,变换屏幕坐标系统的坐标。
坐标变换的运算通过上述的整数的几何运算的仿射变换,按照坐标变换的方式进行。
即,采用变换参数s,将图段坐标系统的顶点坐标系统(x,y,z)t,变换为屏幕坐标系统的坐标(x’,y’,z’)t。
接着,在屏幕空间,将里面的多边形从处理对象脱开(步骤201)。
通过视点坐标系统的Z值(进深),对处理对象的多边形进行分类(步骤202)。
最后,通过屏幕坐标,在假想帧缓冲存储器中,绘制多边形(步骤203)。
下面对该步骤进行更加具体的描述。首先,在这里,检查在绘图区域,显示三角形的可能性。在三角形完全地位于绘图区域之外的场合,跳过以后的绘图处理。
接着,事先计算用于对三角形进行扫描的数值。在该计算中,主要对三角形的棱线坐标,纹理坐标等的变化量进行计算。该变化量通过不采用上述的除法的,三角形光栅化处理(rasterize)的运算得出。
在三角形的扫描中,反复进行加法运算,位移等的单纯操作,将像素值写入到假想帧缓冲存储器中。
作为具体的运算的方法,在计算直线上的x坐标的变化量的场合,2维平面上的点P1的坐标由(x1,y1)表示,点P2的坐标由(x2,y2)表示。当y1≠y2时,相对连接P1与P2的直线的y坐标的x坐标的变化量象上述那样,为:
在Δx’=λΔx,通过C语言的数值运算,计算Δx’的场合,则 Δx′=λ*(x2-x1)/(y2-y1);
另外,当
时,则 Δx′=μ*(x2-x1);象这样,形成乘法的形式。
在仅按整数进行计算的场合,如果|λ|充分大,|y2-y1|在某种程度小,则化为整数的相对误差变小。
于是,如果λ为常数,限制y坐标的范围,则可根据较少的排列,获得μ。
因此,使将该|y2-y1|作为指数而得到的μ的值预先存储于存储部3的倒数表5中。接着,从倒数表5中,读取与|y2-y1|相对应的μ,对该μ与(x2-x1)进行除法运算,由此,计算出Δx’。
此外,为了实现高速的处理,用Δx’进行必要的运算,在于假想帧缓冲存储器中,写入像素的场合,将上述值除以λ。
还有,在除法运算的阶段,如果λ设定为2n(n≥1),则可通过算术右移位,计算Δx,可在不采用除法的情况下,求出x坐标的变化量。
再有,纹理坐标也可进行相同的处理。
下面,作为本发明的实际的具体实例,对通过控制部3进行的C语言描述的程序进行说明。
首先,在下面给出整数的几何运算的程序。
以下为存储于存储器中的,变换参数,即矩阵A’与矩阵(t1,t2,t3)t的实例。
/**整数的几何运算 * *λ=4096 */ public class Atrans3i{ public int m00: //相当于a’11 public int m01: //相当于a’12 public int m02: //相当于a’13 public int m03: //相当于t’1 public int m10: //相当于a’21 public int m11: //相当于a’22 public int m12: //相当于a’23 public int m13: //相当于t’2 public int m20: //相当于a’31 public int m21: //相当于a’32 public int m22: //相当于a’33 public int m23: //相当于t’3
在这里,public int m00~public int m23象注解那样,相当于仿射变换的矩阵A’与矩阵(t1,t2,t3)t的各元素。另外,λ=4096。
下面给出坐标变换。
/**坐标变换 * *@param src变换元的点 *@param dst变换结果的点 <dp n="d23"/> */ public void transpoint(Vec3i src,Vec3i dst){ intx=((m00*src.x+m01*src.y+m02*src.z+2048)>>12)+m03; inty=((m10*src.x+m11*src.y+m12*src.z+2048)>>12)+m13; intz=((m20*src.x+m21*src.y+m22*src.z+2048)>>12)+m23; dst.x=x;dst.y=y;dst.z=z; reture; }
在这里,@param src相当于上述公式2中表示的坐标(x,y,z)t,@param dst相当于上述公式2中表示的坐标(x’,y’,z’)t。
下面给出仿射变换的合成。
/**仿射变换的合成 * * @param t1左边的仿射变换 * @param t2右边的仿射变换 */ pulic void multiply(Atrans3i t1,Atrans3i t2){ int a00=(t1.m00*t2.m00+t1.m01*t2.m10+t1.m02*t2.m20+ 2048)>>12; int a01=(t1.m00*t2.m01+t1.m01*t2.m11+t1.m02*t2.m21+ 2048)>>12; int a02=(t1.m00*t2.m02+t1.m01*t2.m12+t1.m02*t2.m22+ 2048)>>12; int a03=((t1.m00*t2.m03+t1.m01*t2.m13+t1.m02*t2.m23+ <dp n="d24"/> 2048)>>12)+t1.m03; int a10=(t1.m10*t2.m00+t1.m11*t2.m10+t1.m12*t2.m20+ 2048)>>12; int a11=(t1.m10*t2.m01+t1.m11*t2.m11+t1.m12*t2.m21+ 2048)>>12; int a12=(t1.m10*t2.m02+t1.m11*t2.m12+t1.m12*t2.m22+ 2048)>>12; int a13=((t1.m10*t2.m03+t1.m11*t2.m13+t1.m12*t2.m23+ 2048)>>12)+t1.m13; int a20=(t1.m20*t2.m00+t1.m21*t2.m10+t1.m22*t2.m20+ 2048)>>12; int a21=(t1.m20*t2.m01+t1.m21*t2.m11+t1.m22*t2.m21+ 2048)>>12; int a22=(t1.m20*t2.m02+t1.m21*t2.m12+t1.m22*t2.m22+ 2048)>>12; int a23=((t1.m20*t2.m03+t1.m21*t2.m13+t1.m22*t2.m23+ 2048)>>12)+t1.m23; m00=a00;m01=a01;m02=a02;m03=a03; m10=a10;m11=a11;m12=a12;m13=a13; m20=a20;m21=a21;m22=a22;m23=a23; return; } }
下面给出多边形绘制。
/**多边形绘制 <dp n="d25"/> * * λ=65536 */ pulic class Polydraw{ /** 多边形顶点信息 */ static final class Vertex{ int x: //像素X坐标 int y: //像素Y坐标 int u: //纹理元素U坐标 int v: //纹理元素V坐标 } //内部常数 private final static int SFT =16; private final static int TEXHMASK =0x7F0000; private final static int TEXWMASK =0x7F; private final static int TEXPSHIFT =0x09; //μ-1的表 private static final short_inverse__tb1[]={ 0x0000,(short)0xffff,0x7fff,0x5554,0x3fff,0x3332, 0x2aa9,0x2491, 0x1fff,0x1c70,0x1998,0x1744,0x1554,0x13b0, 0x1248,0x1110, 0x0fff,0x0f0e,0x0e37,0x0d78,0x0ccb,0x0c2f,0x0bal, <dp n="d26"/> 0x0b20, 0x0aa9,0x0a3c,0x09d7,0x097a,0x0923,0x08d2, 0x0887,0x0841, 0x07ff,0x07c0,0x07 86,0x074f,0x071b,0x06ea, 0x06bb,0x068f, 0x0665,0x063d,0x0617,0x05f3,0x05d0,0x05af, 0x058f,0x0571, 0x0554,0x0538,0x051d,0x0504,0x04eb,0x04d3, 0x04bc,0x04a6, 0x0491,0x047c,0x0468,0x0455,0x0443,0x0431, 0x0420,0x040f, 0x03ff,0x03ef,0x03df,0x03d1,0x03c2,0x03b4, 0x03a7,0x039a, 0x038d,0x0380,0x0374,0x0368,0x035d,0x0352, 0x0347,0x033c, 0x0332,0x0328,0x031e,0x0314,0x030b,0x0302, 0x02f9,0x02f0, 0x02e7,0x02df,0x02d7,0x02cf,0x02c7,0x02bf, 0x02b8,0x02b0, 0x02a9,0x02a2,0x029b,0x0294,0x028e,0x0287, 0x0281,0x027b, 0x0275,0x026f,0x0269,0x0263,0x025d,0x0258, 0x0252,0x024d, 0x0248,0x0242,0x023d,0x0238,0x0233,0x022f, 0x022a,0x0225, <dp n="d27"/> 0x0221,0x021c,0x0218,0x0213,0x020f,0x020b, 0x0207,0x0203 };
另外,上述表相当于上述的μ的值的倒数表5,但是从存储器的存储容量节约的观点来说,在上述表中采用μ-1的值。另外,按照|y2-y1|的大小的值的顺序并列。
//假想帧缓冲存储器信息 private byte scr_image[];//假想帧缓冲存储器的起始地址 private int scr_width;//帧缓冲存储器的横向像素数量 private int scr_height;//帧缓冲存储器的纵向像素数量 private int scr_pitch;//扫描线跨距 private int scr_offset;//地址偏置 //纹理图像信息 private byte tex_image[];//纹理数据的起始地址 private Texture texture;//纹理 private int tex_width;//纹理的宽度 private int tex_height;//纹理的高度 //剪裁信息 private int clip_left;//左剪裁位置 private int clip_top;//上剪裁位置 private int clip_right;//右剪裁位置 <dp n="d28"/> private int clip_bottom;//下剪裁位置 /**绘制三角形*/ voil drawTriangle(Polydraw.Vertex v0,Polydraw.Vertex v1, Polydraw.Vertex v2){ /*剪裁(代码省略)*/ boolean inside; /*对3个点进行分类(代码省略)*/ int top_x,top_y,top_u,top_v; int mid_x,mid_y,mid_u,mid_v; int bot_x,bot_y,bot_u,bot_v; /*3个点沿横向形成一条直线*/ if(top_y,==bot_y) return; /*扫描开始位置*/ int scan_scr_y=top_y; int pixel =scan_scr_y*scr_pitch+scr_offset; int dist_scr_x,dist_scr_y; int tb_scr_x tm_scr_x,mb_scr_x; int tb_scr_dx tm_scr_dx,mb_scr_dx; int dist_tex_u dist_tex_v; <dp n="d29"/> int tb_tex_u, tb_tex_v,tm_tex_u,tm_tex_v, mb_tex_u,mb_tex_v; int tb_tex_du, tb_tex_dv,tm_tex_du,tm_tex_dv, mb_tex_du,mb_tex_dv; /*top_bot*/ dist_scr_x=bot_x-top_x; dist_scr_x=inverse16(bot_y-top_y); tb_scr_dx=dist_scr_x*dist_scr_y;//top_bot的X 的斜率(Δx’的解法) tb_scr_x=top_x<<SFT;//top_bot上的X /*纹理的top_bot*/ dist_tex_u=bot_u-top_u;(Δx’的解法) dist_tex_v=bot_v-top_v;(Δx’的解法) tb_tex_du=dist_tex_u*dist_scr_y; tb_tex_dv=dist_tex_v*dist_scr_y; tb_tex_u=top_u<<SFT;//top_bot上的U tb_tex_v=top_v<<SFT;//top_bot上的V /*top_mid*/ dist_scr_x=mid_x-top_x; dist_scr_y=mid_y-top_y; dist_tex_u=mid_u-top_u; dist_tex_v=mid_v-top_v; <dp n="d30"/> /*纹理—扫描用dx,dy top_bot->mid*/ int scan_tex_du,scan_tex_dv; int width=dist_scr_x-((tb_scr_dx*dist_scr_y)>>SFT); if(width!=0){ int inv_width=inverse16(width);//水平扫描U 斜率(Δx’的解法) scan_tex_du=(dist_tex_u-((tb_tex_du * dist_scr_y)>>SFT))*inv_width;);//水平扫描v斜率(Δx’的解 法) scan_tex_dv=(dist_tex_v-((tb_tex_dv * dist_scr_y)>>SFT))*inv_width; } else return; /*top_mid*/ int scr_end,scr_dd; if(dist_scr_y>0){ /*具有上三角形*/ dist_scr_y=inverse16(dist_scr_y); tm_scr_dx=dist_scr_x*dist_scr_y;//top-mid 的x斜率(Δx’的解法) tm_scr_x=tb_scr_x;//top-mid上的x <dp n="d31"/> /*纹理的top-mid*/ tm_tex_du=dist_tex_u*dist_scr_y;//top-mid 的U斜率(Δx’的解法) tm_tex_dv=dist_tex_v*dist_scr_y;//top-mid 上的v斜率(Δx’的解法) tm_tex_u=tb_tex_u;//top-mid的U斜率 tm_tex_v=tb_tex_v;//top-mid的V斜率 if(width>0){//top-bot在左 if(inside){ while(scan_scr_y<mid_y){ int p1=(tb_scr_x>>SFT)+pixel; int p2=(tm_scr_x>>SFT)+pixel; int tpx=tb_tex_u; int tpy=tb_tex_v; while(p1<p2){ int tidx=((tpy & TEXHMASK) >>>TEXPSHIFT)+((tpx>>>SFT)& TEXWMASK); scr_image[p1]=tex_image[tidx];//1个像素写入 tpx+=scan_tex_du; tpy+=scan_tex_dv; p1++; } scan_scr_y++; pixel +=scr_pitch; <dp n="d32"/> tb_scr_x +=tb_scr_dx; tm_scr_x +=tm_scr_dx; tb_tex_u +=tb_tex_du; tb_tex_v +=tb_tex_dv; } } else{/*代码省略*/} } else{/*mid-bot在左(代码省略)*/} } /* 底是水平的 */ if(mid_y==bot_y) return; /*mid-bot*/ dist_scr_x=bot_x-mid_x; dist_scr_y=inverse16(bot_y-mid_y); mb_scr_dx=dist_scr_x*dist_scr_y;//mid-bot的斜率 mb_scr_x=mid_x<<SFT;//mid-bot上的X if(width>0){//top-bot在左 if(inside){ while(scan_scr_y<bot_y={ int p1=(tb_scr_x>>SFT)+pixel; <dp n="d33"/> int p2=(mb_scr_x>>SFT)+pixel; int tpx=tb_tex_u; int tpy=tb_tex_v; while(p1<p2){ int tidx=((tpy & TEXHMASK>>> TEXPSHIFT)+((tpx>>>SFT)& TEXWMASK); scr_image[p1]=tex_image[tidx]; //1个像素写入 tpx += scan_tex_du; tpy += scan_tex_dv; p1++; } scan_scr_y++; pixel +=scr_pitch; tb_scr_x +=tb_scr_dx; mb_scr_x +=mb_scr_dx; tb_scr_u +=tb_tex_du; tb_scr_v +=tb_tex_dv; } } else{/*代码省略*/} } else{/*top-mid在左(代码省略)*/} <dp n="d34"/> return; } /**计算μ * * @param num分母(-32767..-1,1..32767) * @return μ=λ/num */ private static int inverse16(int num){ boolean posi_flg=(num>=0); int denom=posi_flg?num:-num; if(denom<128){ int val=(_inverse_tb1[denom] & 0xffff)+1; return posi_flg?val:-val; } int x=32768*128; int y=denom<<15; {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} <dp n="d35"/> {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} {int s=x-y;x=(s>=0)?(s<<1)+1:x<<1;} int r=(x>>15); x<<=1; if(denom<=r) x++; x &=0xffff; return posi_flg?x:-x; } }
上面为实施本发明用的程序的一个实例。
产业上利用可能性
由于本发明在3维图像的绘制的运算处理时,可以在整数的范围,进行运算处理,故即使在象便携终端,PDA(PersonalDigital(Data)Assistants)那样,也不具有FPU(浮点运算组件)的装置,仍对3维图像进行处理。
另外,由于在运算处理时,不进行处理负荷较高的除法,故即使在CPU的能力较低的信息处理装置中,仍进行顺利的绘图处理。
Claims (20)
1.一种信息处理装置,在该信息处理装置中,将坐标值限定为整数,并进行将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的3维图像的绘制,其特征在于该信息处理装置包括:
存储器,该存储器存储有仿射变换的矩阵 与λ(≠0)相乘而形成的矩阵 矩阵(t1,t2,t3)t和形状数据;
运算机构,该运算机构在通过矩阵A和矩阵(t1,t2,t3)t的仿射变换,将上述形状数据的坐标(x,y,z)t,变换为坐标(x’,y’,z’)t时,通过上述存储器,读取矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
由此对坐标(x’,y’,z’)t进行运算。
2.根据权利要求1所述的信息处理装置,其特征在于将上述λ限定为2n(n≥1);上述运算机构为,通过对下述式
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;的除法运算的结果进行n位右移位的方式进行运算的机构。
3.根据权利要求2所述的信息处理装置,其特征在于上述运算机构为,通过在将常数λ/2与各被除数相加后,进行n位右移位的方式进行运算的机构。
4.根据权利要求1~3中的任何一项所述的信息处理装置,其特征在于其包括合成机构,该合成机构将预先乘以λ(≠0)的2个以上的参数合成。
5.根据权利要求1~4中的任何一项所述的信息处理装置,其特征在于其还包括:
存储器,该存储器按照与y坐标的变化量相关的方式,存储有通过下述公式表示的常数μ(λ为2n(n≥1)):
运算机构,该运算机构在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
通过从上述存储器中,读取对应于上述y坐标的变化量的μ,通过乘法运算,由此对下述公式进行运算,
Δx′=μ*(x2-x1)
将该计算出的Δx’进行n位右移位,对Δx进行运算。
6.一种绘图处理方法,该绘图处理方法为,将坐标值限定为整数,将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的3维图像的绘图处理方法,其特征在于该绘图处理方法包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,该场合指通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
由此对坐标(x’,y’,z’)t进行运算。
7.根据权利要求6所述的绘图处理方法,其特征在于将上述λ限定为2n(n≥1);
上述运算步骤为,通过对下述式
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;的除法运算的结果进行n位右移位,由此对坐标(x’,y’,z’)t进行运算的步骤。
8.根据权利要求7所述的绘图处理方法,其特征在于在进行n位右移位之前,还包括将各被除数与λ/2进行加法运算的步骤。
9.根据权利要求6~8中的任何一项所述的绘图处理方法,其特征在于还包括将预先乘以λ(≠0)的2个以上的参数合成的步骤。
10.根据权利要求6~9中的任何一项所述的绘图处理方法,其特征在于在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时, 该方法包括:
读取步骤,在该读取步骤中,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由下述公式表示的常数μ(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位右移位,由此对Δx进行运算。
11.一种程序,在该程序中,在信息处理装置中,将坐标值限定为整数,并进行将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的变换处理,其特征在于该程序包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,该场合指通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
由此对坐标(x’,y’,z’)t进行运算。
12.根据权利要求11所述的程序,其特征在于对于上述程序,在将上述λ限定为2n(n≥1)的场合,
上述运算步骤为,在信息处理装置中,通过对下述式
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
进行除法运算的结果进行n位右移位,由此对坐标(x’,y’,z’)t进行运算的步骤。
13.根据权利要求12所述的程序,其特征在于在信息处理装置中,在进行n位移位之前,还包括将各被除数与常数λ(≠0)进行加法运算的步骤。
14.根据权利要求11~13中的任何一项所述的程序,其特征在于还包括在信息处理装置中,将预先乘以λ/2的2个以上的参数合成的步骤。
15.根据权利要求11~14中的任何一项所述的程序,其特征在于在信息处理中,在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时,
该程序还包括下述步骤:
读取步骤,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由下述公式表示的常数μ(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位移位,由此对Δx进行运算。
16.一种记录媒体,该记录媒体存储有下述程序,在该程序中,在信息处理装置中,将坐标值限定为整数,并进行将坐标(x,y,z)t通过下述式 表示的仿射变换,变换为坐标(x’,y’,z’)t的变换处理,其特征在于该程序包括下述步骤:
读取步骤,该读取步骤读取参数A’和矩阵(t1,t2,t3)t,该参数A’是在下述场合,将存储于存储器中的,矩阵A与λ(≠0)相乘而得到的,在该场合,通过矩阵A和(t1,t2,t3)t的仿射变换,将形状数据的坐标(x,y,z)t变换为(x’,y’,z’)t,该A’表示为:
运算步骤,在该运算步骤中,根据上述已读取的矩阵A’和矩阵(t1,t2,t3)t,对下述式进行运算,
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
由此对坐标(x’,y’,z’)t进行运算。
17.根据权利要求16所述的存储有程序的记录媒体,其特征在于上述程序,在将上述λ限定为2n(n≥1)的场合,
上述运算步骤为,在信息处理装置中,通过对下述式
x′=(a′11*x+a′12*y+a′13*z)/λ+t1;
y′=(a′21*x+a′22*y+a′23*z)/λ+t2;
z′=(a′31*x+a′32*y+a′33*z)/λ+t3;
进行除法运算的结果进行n位右移位,由此对坐标(x’,y’,z’)t进行运算的步骤。
18.根据权利要求17所述的存储有程序的记录媒体,其特征在于上述程序还包括在上述信息处理装置中,在进行上述n位右移位之前,将各被除数与常数λ/2进行加法运算的步骤。
19.根据权利要求16~18中的任何一项所述的存储有程序的记录媒体,其特征在于上述程序还包括在信息处理装置中,将预先乘以λ(≠0)的2个以上的参数合成的步骤。
20.根据权利要求16~19中的任何一项所述的存储有程序的记录媒体,其特征在于在信息处理装置中,在对由下述公式表示的,相对y坐标的x坐标的变化量Δx进行运算时, 该程序还包括下述步骤:读取步骤,从上述存储器中,读取对应于上述运算的y坐标的变化量的常数μ,该存储器对应于y坐标的变化量,存储有由下述公式表示的常数μ(λ为2n(n≥1)):
运算步骤,在该运算步骤中,根据上述已读取的常数μ,对下述公式进行运算,
Δx′=μ*(x2-x1)
运算步骤,在该运算步骤中,对该计算出的Δx’进行n位移位,由此对Δx进行运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001187619 | 2001-06-21 | ||
JP187619/2001 | 2001-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1465035A true CN1465035A (zh) | 2003-12-31 |
Family
ID=19026886
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02802444A Pending CN1465035A (zh) | 2001-06-21 | 2002-06-20 | 信息处理装置 |
CN02802446A Pending CN1465036A (zh) | 2001-06-21 | 2002-06-20 | 信息处理装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02802446A Pending CN1465036A (zh) | 2001-06-21 | 2002-06-20 | 信息处理装置 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7030880B2 (zh) |
EP (2) | EP1406213A4 (zh) |
JP (2) | JPWO2003001458A1 (zh) |
KR (2) | KR20030043935A (zh) |
CN (2) | CN1465035A (zh) |
IL (4) | IL154450A0 (zh) |
TW (2) | TWI257795B (zh) |
WO (2) | WO2003001458A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107081B1 (en) | 2001-10-18 | 2006-09-12 | Iwao Fujisaki | Communication device |
US7466992B1 (en) | 2001-10-18 | 2008-12-16 | Iwao Fujisaki | Communication device |
US7127271B1 (en) | 2001-10-18 | 2006-10-24 | Iwao Fujisaki | Communication device |
US8229512B1 (en) | 2003-02-08 | 2012-07-24 | Iwao Fujisaki | Communication device |
US8241128B1 (en) | 2003-04-03 | 2012-08-14 | Iwao Fujisaki | Communication device |
US8090402B1 (en) | 2003-09-26 | 2012-01-03 | Iwao Fujisaki | Communication device |
US7917167B1 (en) | 2003-11-22 | 2011-03-29 | Iwao Fujisaki | Communication device |
US8041348B1 (en) | 2004-03-23 | 2011-10-18 | Iwao Fujisaki | Communication device |
US7091982B2 (en) * | 2004-05-14 | 2006-08-15 | Nvidia Corporation | Low power programmable processor |
US7202877B2 (en) * | 2004-05-21 | 2007-04-10 | Texas Instruments Incorporated | Sprite rendering |
US7664338B2 (en) * | 2004-09-28 | 2010-02-16 | Qualcomm Incorporated | Perspective transformation of two-dimensional images |
US8208954B1 (en) | 2005-04-08 | 2012-06-26 | Iwao Fujisaki | Communication device |
KR101249988B1 (ko) * | 2006-01-27 | 2013-04-01 | 삼성전자주식회사 | 사용자의 위치에 따른 영상을 디스플레이하는 장치 및 방법 |
US8692809B2 (en) * | 2006-07-06 | 2014-04-08 | Elo Touch Solutions, Inc. | Auto-gain switching module for acoustic touch systems |
US7936921B2 (en) * | 2007-01-04 | 2011-05-03 | Freescale Semiconductor, Inc. | Efficient fixed-point real-time thresholding for signal processing |
US7890089B1 (en) | 2007-05-03 | 2011-02-15 | Iwao Fujisaki | Communication device |
US8559983B1 (en) | 2007-05-03 | 2013-10-15 | Iwao Fujisaki | Communication device |
US8676273B1 (en) | 2007-08-24 | 2014-03-18 | Iwao Fujisaki | Communication device |
US8639214B1 (en) | 2007-10-26 | 2014-01-28 | Iwao Fujisaki | Communication device |
US8472935B1 (en) | 2007-10-29 | 2013-06-25 | Iwao Fujisaki | Communication device |
US8744720B1 (en) | 2007-12-27 | 2014-06-03 | Iwao Fujisaki | Inter-vehicle middle point maintaining implementer |
US8543157B1 (en) | 2008-05-09 | 2013-09-24 | Iwao Fujisaki | Communication device which notifies its pin-point location or geographic area in accordance with user selection |
US8340726B1 (en) | 2008-06-30 | 2012-12-25 | Iwao Fujisaki | Communication device |
US8452307B1 (en) | 2008-07-02 | 2013-05-28 | Iwao Fujisaki | Communication device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4760548A (en) * | 1986-06-13 | 1988-07-26 | International Business Machines Corporation | Method and apparatus for producing a curve image |
US5028848A (en) * | 1988-06-27 | 1991-07-02 | Hewlett-Packard Company | Tile vector to raster conversion method |
US5715385A (en) * | 1992-07-10 | 1998-02-03 | Lsi Logic Corporation | Apparatus for 2-D affine transformation of images |
JP3131041B2 (ja) | 1992-08-28 | 2001-01-31 | 三菱電機株式会社 | 量子化装置 |
US5581665A (en) * | 1992-10-27 | 1996-12-03 | Matsushita Electric Industrial Co., Ltd. | Three-dimensional object movement and transformation processing apparatus for performing movement and transformation of an object in a three-diamensional space |
JPH0778269A (ja) | 1993-06-30 | 1995-03-20 | Nec Corp | 3次元描画装置 |
JP2526505B2 (ja) * | 1993-09-28 | 1996-08-21 | 日本電気株式会社 | 画像処理装置 |
AU3139295A (en) * | 1994-07-22 | 1996-02-22 | Apple Computer, Inc. | Method and system for the placement of texture on three-dimensional objects |
KR0170934B1 (ko) * | 1994-12-29 | 1999-03-20 | 배순훈 | 프랙탈 영상 부호화를 위한 고속 아핀 변환 장치 |
JPH09305789A (ja) | 1996-05-21 | 1997-11-28 | Hitachi Ltd | 演算方法およびグラフィックス表示装置 |
AUPP091197A0 (en) * | 1997-12-15 | 1998-01-08 | Liguori, Vincenzo | Direct manipulation of compressed geometry |
US6215915B1 (en) * | 1998-02-20 | 2001-04-10 | Cognex Corporation | Image processing methods and apparatus for separable, general affine transformation of an image |
US6389154B1 (en) * | 1998-07-15 | 2002-05-14 | Silicon Graphics, Inc. | Exact evaluation of subdivision surfaces generalizing box splines at arbitrary parameter values |
US6483514B1 (en) * | 1999-04-15 | 2002-11-19 | Pixar Animation Studios | Motion blurring implicit surfaces |
JP4244444B2 (ja) | 1999-05-28 | 2009-03-25 | ソニー株式会社 | データ処理装置、除算回路および画像処理装置 |
GB2359884B (en) * | 1999-11-25 | 2004-06-30 | Canon Kk | Image processing method and apparatus |
JP2002008060A (ja) * | 2000-06-23 | 2002-01-11 | Hitachi Ltd | データ処理方法、記録媒体及びデータ処理装置 |
-
2002
- 2002-06-20 WO PCT/JP2002/006159 patent/WO2003001458A1/ja active Application Filing
- 2002-06-20 IL IL15445002A patent/IL154450A0/xx active IP Right Grant
- 2002-06-20 KR KR10-2003-7002480A patent/KR20030043935A/ko not_active Application Discontinuation
- 2002-06-20 CN CN02802444A patent/CN1465035A/zh active Pending
- 2002-06-20 JP JP2003507765A patent/JPWO2003001458A1/ja not_active Withdrawn
- 2002-06-20 IL IL15445102A patent/IL154451A0/xx unknown
- 2002-06-20 JP JP2003507764A patent/JP4046233B2/ja not_active Expired - Fee Related
- 2002-06-20 EP EP02743660A patent/EP1406213A4/en not_active Withdrawn
- 2002-06-20 WO PCT/JP2002/006157 patent/WO2003001457A1/ja active Application Filing
- 2002-06-20 CN CN02802446A patent/CN1465036A/zh active Pending
- 2002-06-20 EP EP02743661A patent/EP1406214A4/en not_active Withdrawn
- 2002-06-20 KR KR1020037002479A patent/KR100924250B1/ko active IP Right Grant
- 2002-06-20 US US10/344,452 patent/US7030880B2/en not_active Expired - Lifetime
- 2002-06-20 US US10/296,811 patent/US6970178B2/en not_active Expired - Lifetime
- 2002-06-21 TW TW091113609A patent/TWI257795B/zh not_active IP Right Cessation
- 2002-06-21 TW TW091113608A patent/TWI239488B/zh not_active IP Right Cessation
-
2003
- 2003-02-13 IL IL154451A patent/IL154451A/en not_active IP Right Cessation
- 2003-02-13 IL IL154450A patent/IL154450A/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2003001457A1 (fr) | 2003-01-03 |
KR100924250B1 (ko) | 2009-10-30 |
IL154451A0 (en) | 2003-09-17 |
CN1465036A (zh) | 2003-12-31 |
JPWO2003001457A1 (ja) | 2004-10-14 |
US6970178B2 (en) | 2005-11-29 |
EP1406214A1 (en) | 2004-04-07 |
KR20030045036A (ko) | 2003-06-09 |
US20030184543A1 (en) | 2003-10-02 |
WO2003001458A1 (fr) | 2003-01-03 |
US20030185460A1 (en) | 2003-10-02 |
TWI257795B (en) | 2006-07-01 |
US7030880B2 (en) | 2006-04-18 |
EP1406214A4 (en) | 2009-01-14 |
TWI239488B (en) | 2005-09-11 |
IL154450A0 (en) | 2003-09-17 |
IL154450A (en) | 2008-11-26 |
EP1406213A4 (en) | 2009-01-14 |
IL154451A (en) | 2009-07-20 |
KR20030043935A (ko) | 2003-06-02 |
JP4046233B2 (ja) | 2008-02-13 |
JPWO2003001458A1 (ja) | 2004-10-14 |
EP1406213A1 (en) | 2004-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1465035A (zh) | 信息处理装置 | |
CN1293518C (zh) | 具有割截与支援框线模式的三角形描绘方法与装置 | |
CN1027472C (zh) | 文字生成方法及其装置 | |
CN1187952C (zh) | 校正输入图象失真的设备与方法 | |
CN1324526C (zh) | 视频信号的自适应缩放 | |
CN1138420C (zh) | 图象处理器、图象数据处理器和可变长度代码解码器 | |
CN100341031C (zh) | 曲面图像处理装置及曲面图像处理方法 | |
CN1774727A (zh) | 为像素确定覆盖掩模 | |
CN1296813C (zh) | 浮点存储方法及浮点运算装置 | |
CN1924931A (zh) | 视频绘制装置及方法 | |
CN1898676A (zh) | 使用了点图案的信息输入输出方法 | |
CN1121199A (zh) | 字符发生装置及其实现方法 | |
CN1703724A (zh) | 用于波特-达夫合成的背景色去除方法 | |
CN1526098A (zh) | 与二维或三维几何实体相关的数据的输出方法和系统 | |
CN1399244A (zh) | 字符显示设备、方法和程序以及用于它们的记录媒体 | |
CN1729427A (zh) | 投影装置、投影系统和图像获得方法 | |
CN1213612C (zh) | 用于采用离散变换进行数字视频数据去压缩的方法和系统 | |
CN101038676A (zh) | 图像处理装置和图像处理方法 | |
CN1942901A (zh) | 图像处理装置及图像处理方法 | |
CN1206612C (zh) | 用于重现具有畸变的反射性组构表面的方法和设备 | |
CN1271846C (zh) | 图像处理方法及图像处理装置 | |
CN1836634A (zh) | 四维标记设备、n维标记设备、四维空间滤波设备以及n维空间滤波设备 | |
CN1485769A (zh) | 掩膜数据加工装置 | |
CN1816843A (zh) | 字符显示设备、字符显示方法、字符显示程序及可读记录介质 | |
CN1324060A (zh) | 图像编码/解码方法及其装置和记录节目的记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1061733 Country of ref document: HK |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1061733 Country of ref document: HK |