CN105320783A - 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 - Google Patents
一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 Download PDFInfo
- Publication number
- CN105320783A CN105320783A CN201410309029.8A CN201410309029A CN105320783A CN 105320783 A CN105320783 A CN 105320783A CN 201410309029 A CN201410309029 A CN 201410309029A CN 105320783 A CN105320783 A CN 105320783A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- svg
- integrated circuit
- design tool
- dimentional
- 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
- Image Generation (AREA)
Abstract
一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法属于半导体集成电路设计自动化领域,主要涉及集成电路相关三维对象的描述与显示。半导体行业用户越来越期望在版图设计工具中观察到直观的三维视图,事实上该行业的工具软件运行环境受限,只有通用的二维窗口绘图接口,几乎没有三维引擎支持。本发明基于纯二维的SVG图形格式标准,解决了三维对象从建模到显示的一系列问题,提出了完整可行的解决方案。
Description
技术领域
一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法属于半导体集成电路设计自动化领域,主要涉及集成电路物理版图的三维描述与显示,以及版图器件电器特征的三维函数图像的描述与显示。
背景技术
随着半导体集成电路工业的发展,业界对半导体集成电路设计自动化(EDA)工具软件也提出了更高要求,希望在版图设计工具中观察到集成电路版图直观的三维视图,而不局限于所有材料层叠放在一起的二维视图。另外,很多器件的电器特征函数也不局限于只包含一个变量,存在两个或两个以上变量时,采用三维函数图像描述将更加直观。因此,三维对象的建模与显示成为现代EDA工具软件不可或缺的一部分。
计算机上的三维表达有很多成熟的引擎支持,例如Windows操作系统下的DirectX,和Linux操作系统下的OpenGL等。不过这些引擎通常需要独立显卡等显示硬件支持,才能正确工作。事实上,在半导体行业,工具软件的运行环境受到很大限制,用户通常采用一台图形终端,远程登陆到Linux服务器上进行操作,没有独立显卡可用。工具软件可调用的只有通用的二维窗口绘图接口,三维绘图几乎完全失效。
本发明正是在这样受限的环境下,探索出来一种只调用二维窗口绘图接口,进行三维对象(物理版图、函数图像)表达(包括三维建模、坐标变换、透视投影等)的方法,其中借用了成熟的可缩放矢量图形(ScalableVectorGraphics,SVG)标准。
SVG标准是基于可扩展标记语言(eXtensibleMarkupLanguage,XML),用于描述二维矢量图形的一种图形格式,由万维网联盟(WorldWideWebConsortium,W3C)制定,是一个开放标准,1999年发布,2003年1月14日成为W3C推荐标准。与其他图形格式相比,使用SVG的优势在于:
lSVG可被非常多的工具读取和修改(比如记事本);
lSVG与JPEG和GIF图像比起来,尺寸更小,且可压缩性更强;
lSVG是可伸缩的;
lSVG图像可在任何的分辨率下被高质量的打印;
lSVG可在图像质量不下降的情况下被放大;
lSVG图像中的文本是可选的,同时也是可搜索的(很适合制作地图);
lSVG可以与Java技术一起运行;
lSVG是开放的标准;
lSVG文件是纯粹的XML。
不过,SVG作为一种单纯的二维图形标准,没有任何三维特征。本发明的主要创新点就是借用SVG丰富的二维元素(二维面元、二维曲线段),对三维对象建模,然后每个元素独立进行坐标变换,独立进行三维到二维的透视投影,最终使所有元素归纳到同一二维平面上,形成标准的SVG图形文件,由此将SVG的应用范围由二维扩展到三维。
SVG的二维元素丰富,包括直线、多边形、贝塞尔曲线等,还可以由此任意组合成开放或闭合的曲线路径。采用SVG元素给集成电路设计工具中三维对象建模,无论表达物理版图还是三维函数图像,都可以比较精确的描述原始对象,能够满足业界用户需求。
SVG的后续处理支持广泛。图形可以任意缩放,除了在工具软件窗口绘图,甚至可以直接显示在网页浏览器里。还可以离线共享,采用任意矢量绘图工具编辑修改,按需截取图层。这都是DirectX、OpenGL等只显示叠加后的位图结果的像素三维引擎不可比拟的。
因此,符合通用标准的矢量三维表达方法必然成为业界发展的趋势。
发明内容
本发明针对半导体集成电路设计自动化领域,三维表达需求日益增加,提出了一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法。此方法特别针对工具软件在业界用户的运行环境受限,三维引擎难以支持的实际情况,提出了全新的解决方案,有效解决了处理过程中所面临的问题。
本发明的主要技术方案包括以下三个方面:
第一,三维对象建模方法。通过三维空间中的若干SVG元素(二维面元、二维曲线段)共同描述某个三维矢量对象(三维物理版图、三维函数图像),但同一SVG元素的所有特征点(顶点、曲线控制点)一定位于某个空间平面上。
第二,三维坐标变换方法。通过逐个SVG元素逐个特征点独立进行三维变换实现三维对象的坐标变换。
第三,三维到二维透视投影方法。通过逐个SVG元素逐个特征点独立进行三维到二维的透视投影,并根据每个SVG元素中心点坐标计算底层到顶层叠放顺序,所有结果SVG元素归纳到同一平面上,形成标准SVG矢量图形,作为三维对象的透视投影。
由此三步产生的SVG图像,可以在Windows、Linux、MacOS等操作系统下,不依赖任何显示硬件,直接进行二维绘图显示,完全满足集成电路设计工具的用户界面需求。
附图说明
图1 基于二维SVG矢量图形的三维矢量对象表达方法流程图;
图2 采用二维SVG多边形元素表示三维多面体原理图;
图3 集成电路版图由二维视图过渡到三维视图示意图;
图4 某空间直角坐标系函数图像示意图;
图5 某空间极坐标系函数图像示意图。
具体实施方式
本部分详细说明实现发明的优选方式。图1清晰描述了基于二维SVG矢量图形表达三维矢量对象的主流程,除了最后一步将结果用于“显示或再编辑”,前三步正好与主要技术方案相对应,包括以下三方面内容:
第一,三维对象建模方法的实现。由于SVG的基本元素(直线、多边形、贝塞尔曲线等)都是二维的,那么用于描述三维对象时:
1)遇到平面或二维曲线可以直接用单一SVG元素描述;
2)遇到三维空间曲面或曲线时,就要将曲面或曲线分割成若干小单元,每个小单元近似表示为二维面元、二维曲线段,进而采用SVG元素进行描述。
描述时,将SVG元素的特征点(顶点、曲线控制点)由二维坐标扩展为三维坐标,以便适应三维对象的空间位置,不过由于SVG元素本身都是二维的,所以同一元素的全部特征点一定位于某个空间平面上。
图3为集成电路版图由二维视图过渡到三维视图示意图,很明显三维视图(32)比二维视图(31)更容易观察,用户接受程度更高,这也是最近半导体行业对集成电路设计工具的新需求。其中三维视图(32)满足三维对象建模的第一种条件,每一个材料层都是平面,每层可以用单一的SVG多边形元素描述,不用分割。
图4和图5分别为某空间直角坐标系函数和某空间极坐标系函数的函数图像,很明显原始精确的函数图像应该是由空间曲面围成的,不过将开放曲面(41)和封闭曲面(52)分割成若干二维面元表示出来,用户仍然可以接受。这就满足了三维对象建模的第二种条件,每一个小面元采用一个SVG多边形元素进行描述。此处坐标轴(42)不必分割,采用单一的SVG直线描述即可。
第二,三维坐标变换方法的实现。三维坐标变换(平移、旋转、缩放等)比较简单,逐个SVG元素逐个特征点独立进行三维变换即可,所有特征点独立操作,互不影响。
值得注意的是,通过三维坐标变换,可以将几个简单的SVG元素重新组合成复杂的三维对象。因此,本步骤与前一步三维对象建模可以反复迭代,形成很复杂的三维对象模型,适应复杂情况需求。
图2为采用二维SVG多边形元素表示三维多面体原理图,从(21)到(28)每次增加一个平面,最终围成一个正八面体。在此正八面体的建模过程中,就可以借助三维坐标变换辅助完成。最初将正八面体的中心置于空间坐标原点(0,0,0),那么第一卦限的三角形坐标就可以表示为(1,0,0)-(0,1,0)-(0,0,1),这可以构成一个SVG多边形元素。其他七个三角形面对应的SVG多边形元素,均可由此元素通过坐标变换而来(沿坐标轴旋转,或沿坐标平面翻转)。
第三,三维到二维透视投影方法的实现。与前一步坐标变换类似,通过逐个SVG元素逐个特征点进行三维到二维的透视投影,所有特征点独立操作,互不影响。
值得注意的是,由于景深远近不同,距离观察者近处的SVG元素应该遮挡住远处的SVG元素,体现在标准SVG矢量图形上,就是从底层到顶层的叠放顺序。在进行三维到二维的透视投影时,同时根据每个SVG元素中心点坐标计算距离观察者的远近,进而体现在SVG元素叠放顺序上,即可满足需求。
最终,将投影过的所有结果SVG元素归纳到同一平面上,形成三维对象的透视投影。
仍然以图2为例,经过若干三维坐标变换和透视投影,图(28)对应的SVG图像如下所示:
<?xmlversion="1.0"standalone="no"?>
<svgviewBox="00960540"xmlns="http://www.w3.org/2000/svg">
<g>
<polygonpoints="346.982,331.683402.754,320.756399.179,381.961"/>
<polygonpoints="450.243,332.088402.754,320.756399.179,381.961"/>
<polygonpoints="346.982,331.683402.754,320.756397.961,281.054"/>
<polygonpoints="450.243,332.088402.754,320.756397.961,281.054"/>
<polygonpoints="346.982,331.683394.025,344.001399.179,381.961"/>
<polygonpoints="450.243,332.088394.025,344.001399.179,381.961"/>
<polygonpoints="346.982,331.683394.025,344.001397.961,281.054"/>
<polygonpoints="450.243,332.088394.025,344.001397.961,281.054"/>
</g>
</svg>
这是一个标准的SVG图形,基于XML语言表示。它包含有8个多边形(polygon)元素,每个都是三角形。SVG绘图标准是按照文本读取顺序依次绘图,因此文本中最靠前的polygon元素是距离观察者最远的,最先绘制,绘图过程中会被后来的polygon遮挡住。
由此不难推断,图(21)对应的SVG图形如下所示:
<?xmlversion="1.0"standalone="no"?>
<svgviewBox="00960540"xmlns="http://www.w3.org/2000/svg">
<g>
<polygonpoints="346.982,331.683402.754,320.756399.179,381.961"/>
</g>
</svg>
只包含一个polygon,也就是图(28)的SVG图形中最靠前的那个polygon。
类似的,图(25)对应的SVG图形如下所示:
<?xmlversion="1.0"standalone="no"?>
<svgviewBox="00960540"xmlns="http://www.w3.org/2000/svg">
<g>
<polygonpoints="346.982,331.683402.754,320.756399.179,381.961"/>
<polygonpoints="450.243,332.088402.754,320.756399.179,381.961"/>
<polygonpoints="346.982,331.683402.754,320.756397.961,281.054"/>
<polygonpoints="450.243,332.088402.754,320.756397.961,281.054"/>
<polygonpoints="346.982,331.683394.025,344.001399.179,381.961"/>
</g>
</svg>
包含了图(28)的SVG图形中的前五个polygon。
图2中每一幅图对应的SVG图形都是二维的,不包含任何三维坐标信息,这也正是SVG图形格式标准所规定的。不过,这并不影响基于SVG图形显示出三维视觉效果,只要三维到二维透视投影的坐标计算正确,在版图设计工具中绘制出来,用户就会感觉正在观察一个三维对象(物理版图或函数图像)。
图5也能说明类似的三维视觉效果特点,单独观察图5的一个片段(51),通常都会认为只是4个平面多边形。然而观察接近于完整的片段(52),就很明显看出是个由三维曲面围成的三维空间。
因此,基于纯二维的SVG矢量图形标准,表达三维矢量对象,是完全可行的。本专利的创新点就在于此:基于纯二维的SVG图形格式标准,解决了三维对象从建模到显示的一系列问题,提出了完整可行的解决方案。
Claims (1)
1.一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法,技术特征在于:第一、三维对象建模方法:通过三维空间中的若干SVG元素(二维面元、二维曲线段)共同描述某个三维矢量对象(三维物理版图、三维函数图像);第二、三维坐标变换方法:通过逐个SVG元素逐个特征点独立进行三维变换实现三维对象的坐标变换;第三、三维到二维透视投影方法:通过逐个SVG元素逐个特征点独立进行三维到二维的透视投影,并根据每个SVG元素中心点坐标计算底层到顶层的叠放顺序,所有结果SVG元素归纳到同一平面上,形成标准SVG矢量图形,作为三维对象的透视投影。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309029.8A CN105320783A (zh) | 2014-07-01 | 2014-07-01 | 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410309029.8A CN105320783A (zh) | 2014-07-01 | 2014-07-01 | 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105320783A true CN105320783A (zh) | 2016-02-10 |
Family
ID=55248169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410309029.8A Pending CN105320783A (zh) | 2014-07-01 | 2014-07-01 | 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105320783A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256571A (zh) * | 2021-05-11 | 2021-08-13 | 浙江欧威科技有限公司 | 基于方向特征和局部唯一性的矢量图形特征点提取方法 |
CN116644701A (zh) * | 2023-05-09 | 2023-08-25 | 三峡高科信息技术有限责任公司 | 一种基于svg的可配置生成电路图的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882327A (zh) * | 2009-05-07 | 2010-11-10 | 佳能株式会社 | 信息处理装置及处理信息的方法 |
CN102402797A (zh) * | 2010-09-08 | 2012-04-04 | 纳夫特克北美有限责任公司 | 生成多层地理图像以及多层地理图像的使用 |
CN102663160A (zh) * | 2012-03-16 | 2012-09-12 | 苏州芯禾电子科技有限公司 | 一种构建三维物理电路设计模型的方法 |
CN102831635A (zh) * | 2011-06-13 | 2012-12-19 | 华为软件技术有限公司 | 一种展示矢量图形的方法和终端 |
CN103034968A (zh) * | 2011-09-29 | 2013-04-10 | 扬智科技股份有限公司 | 剪裁二维矢量图形的方法 |
-
2014
- 2014-07-01 CN CN201410309029.8A patent/CN105320783A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882327A (zh) * | 2009-05-07 | 2010-11-10 | 佳能株式会社 | 信息处理装置及处理信息的方法 |
CN102402797A (zh) * | 2010-09-08 | 2012-04-04 | 纳夫特克北美有限责任公司 | 生成多层地理图像以及多层地理图像的使用 |
CN102831635A (zh) * | 2011-06-13 | 2012-12-19 | 华为软件技术有限公司 | 一种展示矢量图形的方法和终端 |
CN103034968A (zh) * | 2011-09-29 | 2013-04-10 | 扬智科技股份有限公司 | 剪裁二维矢量图形的方法 |
CN102663160A (zh) * | 2012-03-16 | 2012-09-12 | 苏州芯禾电子科技有限公司 | 一种构建三维物理电路设计模型的方法 |
Non-Patent Citations (1)
Title |
---|
VUN N等: "Enhancement of SVG Display for Embedded Applications", 《2009 IEEE 9TH MALAYSIA INTERNATIONAL CONFERENCE ON COMMUNICATIONS(MICC)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113256571A (zh) * | 2021-05-11 | 2021-08-13 | 浙江欧威科技有限公司 | 基于方向特征和局部唯一性的矢量图形特征点提取方法 |
CN113256571B (zh) * | 2021-05-11 | 2022-05-27 | 浙江欧威科技有限公司 | 基于方向特征和局部唯一性的矢量图形特征点提取方法 |
CN116644701A (zh) * | 2023-05-09 | 2023-08-25 | 三峡高科信息技术有限责任公司 | 一种基于svg的可配置生成电路图的方法及系统 |
CN116644701B (zh) * | 2023-05-09 | 2024-01-16 | 三峡高科信息技术有限责任公司 | 一种基于svg的可配置生成电路图的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6027100B2 (ja) | 三次元グラフィックスの作成法 | |
CN108230435B (zh) | 采用立方图纹理的图形处理 | |
CN107256207B (zh) | 用于生成3d对象的设备和方法 | |
CN106683189B (zh) | 一种在三维场景中渲染文字的方法 | |
JP6863693B2 (ja) | グラフィックス処理システムおよび方法 | |
JPH05342310A (ja) | 線要素データの3次元変換装置及び方法 | |
CN102163340A (zh) | 计算机系统中实现三维动态几何图形数据信息标注的方法 | |
CN109920043B (zh) | 虚拟3d对象的立体渲染 | |
US11468635B2 (en) | Methods and apparatus to facilitate 3D object visualization and manipulation across multiple devices | |
US20160012618A1 (en) | Line stylization through graphics processor unit (gpu) textures | |
US10403040B2 (en) | Vector graphics rendering techniques | |
CN104299255A (zh) | 一种三维地形模型的渲染方法 | |
CN105320783A (zh) | 一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法 | |
US11803674B2 (en) | Dual mode post processing | |
US20230154102A1 (en) | Representing 3d shapes with probabilistic directed distance fields | |
CN105975259A (zh) | 一种3d空间用户界面的实现方法及其装置 | |
CN104835192A (zh) | 一种三维网页图形绘制方法及装置 | |
US11869123B2 (en) | Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer | |
CN111563929B (zh) | 一种基于浏览器的2.5d网页开发方法 | |
US9734579B1 (en) | Three-dimensional models visual differential | |
JP2012098951A (ja) | 図形描画処理装置、図形描画処理方法、及びコンピュータプログラム | |
US20220100929A1 (en) | Multi surface patterning driven by curve(s) | |
KR100914915B1 (ko) | 저비용의 뷰-체적 클리핑 방법 및 장치 | |
US10453247B1 (en) | Vertex shift for rendering 360 stereoscopic content | |
CN107862740B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160210 |