KR101654865B1 - Apparatus, method and computer program for rendering image based on stroke - Google Patents

Apparatus, method and computer program for rendering image based on stroke Download PDF

Info

Publication number
KR101654865B1
KR101654865B1 KR1020150004185A KR20150004185A KR101654865B1 KR 101654865 B1 KR101654865 B1 KR 101654865B1 KR 1020150004185 A KR1020150004185 A KR 1020150004185A KR 20150004185 A KR20150004185 A KR 20150004185A KR 101654865 B1 KR101654865 B1 KR 101654865B1
Authority
KR
South Korea
Prior art keywords
boundary
point
stroke
triangle
points
Prior art date
Application number
KR1020150004185A
Other languages
Korean (ko)
Other versions
KR20160086622A (en
Inventor
이택희
Original Assignee
삼성전자주식회사
(주)에프엑스기어
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, (주)에프엑스기어 filed Critical 삼성전자주식회사
Priority to KR1020150004185A priority Critical patent/KR101654865B1/en
Publication of KR20160086622A publication Critical patent/KR20160086622A/en
Application granted granted Critical
Publication of KR101654865B1 publication Critical patent/KR101654865B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치는, 경로를 따른 스트로크를 나타내는 복수의 에지점(edge point)으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 스트로크의 폭을 이용하여 복수의 경계점(boundary point)을 생성하도록 구성된 경계점 생성부; 각 에지점, 각 경계점 및 경계점들 사이의 중간점(middle point)을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형(inner triangle) 및 하나 이상의 경계 삼각형(boundary triangle)을 포함하는 메쉬(mesh)를 생성하도록 구성된 메쉬 생성부; 및 상기 메쉬를 이미지로 렌더링하도록 구성된 렌더링부를 포함한다. 상기 장치는 입력 이벤트가 경로를 따라 연속적으로 발생되는 스트로크를 내부 삼각형 및 경계 삼각형으로 분할함으로서 곡선 렌더링에 의하여 자연스럽게 묘화할 수 있어, GPU(Graphic Processing Unit) 기반의 벡터 그래픽(vector graphics)에 용이하게 활용될 수 있다.A stroke-based image rendering apparatus includes a plurality of edge points that represent a stroke along a path and a plurality of edge points using a width of a normal and a stroke corresponding to each of the plurality of edge points, a boundary point generator configured to generate a boundary point; A mesh including at least one inner triangle and at least one boundary triangle corresponding to the stroke is created by using a middle point between each edge point, each boundary point and boundary points, A mesh generation unit configured to generate the mesh generation unit; And a rendering unit configured to render the mesh as an image. The apparatus divides the strokes generated continuously along the path into internal triangles and boundary triangles by means of curve rendering, so that the apparatus can easily draw vector graphics based on GPU (Graphic Processing Unit) Can be utilized.

Figure 112015002873268-pat00028
Figure 112015002873268-pat00028

Description

스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램{APPARATUS, METHOD AND COMPUTER PROGRAM FOR RENDERING IMAGE BASED ON STROKE}TECHNICAL FIELD [0001] The present invention relates to a stroke-based image rendering apparatus, a method and a computer program,

실시예들은 스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치, 방법 및 컴퓨터 프로그램에 대한 것으로, 보다 상세하게는 GPU(Graphic Processing Unit) 기반의 벡터 그래픽(vector graphics)을 위하여 입력 이벤트가 경로를 따라 발생되는 스트로크를 이미지로 렌더링할 수 있는 장치, 방법 및 컴퓨터 프로그램에 대한 것이다.Embodiments are directed to a stroke based image rendering device, method and computer program, and more particularly, to input graphics for a vector graphics based GPU (Graphic Processing Unit) And a computer program capable of rendering a generated stroke as an image.

벡터 그래픽(vector graphics)은 주어진 2차원 또는 3차원 공간에 배치된 형상을 묘화하기 위하여 일련의 명령들이나 수학적 표현을 기반으로 하는 점, 직선, 곡선, 다각형 등의 물체를 통해 디지털 이미지를 만든다. 벡터 그래픽에서는 묘화하고자 하는 형상에 대한 데이터가 일련의 벡터 서술문의 형태로 창작되고 저장된다. 예를 들면, 벡터 그래픽 데이터에는, 종래의 래스터(raster) 그래픽과 같이 선을 그리기 위해 각 비트들이 저장되는 대신에, 연결될 일련의 점의 위치가 포함되어 있어 파일 크기가 작아지는 결과를 가져온다.Vector graphics create digital images through points, straight lines, curves, polygons, and other objects based on a series of instructions or mathematical expressions to draw shapes placed in a given two- or three-dimensional space. In vector graphics, data about the shape to be rendered is created and stored in the form of a series of vector description statements. For example, vector graphics data includes locations of a series of points to be connected, instead of storing each bit for drawing a line, such as a conventional raster graphic, resulting in a smaller file size.

CPU(Central Processing Unit) 기반의 벡터 그래픽은, 경로 데이터를 래스터화(rasterize)한 결과물을 이용하여 이미지 렌더링(rendering)을 수행한다. 그러나, CPU 기반 벡터 그래픽의 경우 CPU를 불필요하게 많이 사용하며 결과물인 렌더링된 이미지의 품질이 좋지 못하다. 이러한 문제를 해결하기 위하여, 근래에 들어서는 GPU(Graphic Processing Unit) 기반의 벡터 그래픽에 대한 연구가 활발하게 이루어지고 있으며, 구글사, 애플사, 노키아사 등의 IT 대기업들이 벡터 그래픽을 위한 GPU의 개발에 많은 노력을 기울이고 있다. A central processing unit (CPU) -based vector graphic performs image rendering using the result of rasterizing the path data. However, CPU-based vector graphics use the CPU unnecessarily, and the quality of the resulting rendered image is poor. To solve these problems, researches on vector graphics based on GPU (Graphic Processing Unit) have been actively carried out in recent years, and IT corporations such as Google, Apple, and Nokia have developed GPUs for vector graphics We are making a lot of effort.

GPU 기반의 벡터 그래픽에 의해 이미지를 렌더링하기 위해서는, 먼저 표현하고자 하는 폴리곤(polygon)을 GPU의 렌더링 단위인 삼각형으로 이루어진 메쉬(mesh)로 변환하여야 한다. 그러나, 렌더링하고자 하는 데이터가 입력 이벤트가 경로를 따라 발생된 결과물인 스트로크(stroke)일 경우, 종래의 벡터 그래픽 기술에 의하여 렌더링을 수행하는 것이 어렵다. In order to render an image using GPU-based vector graphics, the polygon to be rendered must first be converted into a triangle mesh, which is a rendering unit of the GPU. However, when the data to be rendered is a stroke that is the result of the input event along the path, it is difficult to perform the rendering by the conventional vector graphic technique.

국제공개공보 WO 2013/162136호International Publication No. WO 2013/162136 미국특허출원 공개공보 US2007/0097123호United States Patent Application Publication No. US2007 / 0097123

본 발명의 일 측면에 따르면, GPU(Graphic Processing Unit) 기반의 벡터 그래픽(vector graphics)을 위하여, 입력 이벤트가 경로를 따라 발생되는 스트로크(stroke)를 자연스럽게 렌더링(rendering)할 수 있는 스트로크 기반의 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램을 제공할 수 있다.According to an aspect of the present invention, there is provided a stroke-based image processing method capable of naturally rendering a stroke generated along an input event for vector graphics based on GPU (Graphic Processing Unit) A rendering device, a method, and a computer program.

일 실시예에 따른 스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치는, 경로를 따른 스트로크를 나타내는 복수의 에지점(edge point)으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 스트로크의 폭을 이용하여 복수의 경계점(boundary point)을 생성하도록 구성된 경계점 생성부; 각 에지점, 각 경계점 및 경계점들 사이의 중간점(middle point)을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형(inner triangle) 및 하나 이상의 경계 삼각형(boundary triangle)을 포함하는 메쉬(mesh)를 생성하도록 구성된 메쉬 생성부; 및 상기 메쉬를 이미지로 렌더링하도록 구성된 렌더링부를 포함한다. A stroke-based image rendering apparatus according to an embodiment includes a plurality of edge points representing a stroke along a path, a width of a normal and a stroke corresponding to each of the plurality of edge points, A boundary point generator configured to generate a plurality of boundary points using the boundary point generator; A mesh including at least one inner triangle and at least one boundary triangle corresponding to the stroke is created by using a middle point between each edge point, each boundary point and boundary points, A mesh generation unit configured to generate the mesh generation unit; And a rendering unit configured to render the mesh as an image.

일 실시예에 따른, 스트로크 기반의 이미지 렌더링 장치는, 경로 데이터 및 스트로크의 폭을 포함하는 스트로크 데이터를 수신하도록 구성된 입력부; 및 상기 스트로크 데이터로부터 상기 복수의 에지점을 생성하도록 구성된 에지점 생성부를 더 포함한다.According to one embodiment, a stroke-based image rendering apparatus includes an input configured to receive stroke data including path data and a stroke width; And an edge point generating unit configured to generate the plurality of edge points from the stroke data.

일 실시예에서, 상기 경계점 생성부는, 상기 복수의 에지점 각각에 대하여, 에지점에 대응되는 법선상에서 에지점의 양 측면에 각각 위치하는 한 쌍의 경계점을 생성하도록 구성된다. In one embodiment, the boundary point generating unit is configured to generate, for each of the plurality of edge points, a pair of boundary points respectively located on both sides of the edge point on a normal line corresponding to the edge point.

일 실시예에서, 상기 복수의 에지점은 경로의 진행 방향을 따라 순차적으로 위치하는 제1 에지점 및 제2 에지점을 포함한다. 이때, 상기 경계점 생성부는, 상기 제1 에지점에 대응되는 제1 법선 및 상기 제2 에지점에 대응되는 제2 법선이 서로 교차할 경우, 상기 제2 에지점에 대응되는 경계점 중 하나를 상기 제1 법선과 상기 제2 법선의 교차점에 위치시키도록 구성될 수 있다.In one embodiment, the plurality of edge points include a first edge point and a second edge point that are sequentially located along the traveling direction of the path. In this case, when the first normal line corresponding to the first edge point and the second normal line corresponding to the second edge point intersect with each other, the boundary point generating unit generates one of the boundary points corresponding to the second edge point, 1 normal line and the second normal line.

일 실시예에서, 상기 메쉬 생성부는, 각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 하나 이상의 중간점을 포함하며 스트로크의 경로와 만나는 상기 내부 삼각형을 생성하도록 구성된 내부 삼각형 생성부; 및 각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 경계점을 포함하며 스트로크의 경로와 만나지 않는 상기 경계 삼각형을 생성하도록 구성된 경계 삼각형 생성부를 포함한다.In one embodiment, the mesh generation unit includes an inner triangle generation unit configured to generate at least one intermediate point by connecting at least one of each edge point, each boundary point, and each intermediate point, ; And a boundary triangle generation unit configured to generate the boundary triangle including the boundary point and not meeting the path of the stroke by connecting at least one of each edge point, each boundary point, and each intermediate point.

일 실시예에서, 상기 경계 삼각형 생성부는, 경계점을 제외한 상기 경계 삼각형의 하나의 꼭지점으로부터 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 상기 경계 삼각형의 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱에 기초하여 상기 경계 삼각형의 종류를 오목 또는 볼록으로 결정한다. 이때, 상기 렌더링부는, 상기 경계 삼각형의 종류에 기초하여 상기 경계 삼각형 내부의 일부 영역을 곡선 형태로 렌더링하도록 구성된다.In one embodiment, the boundary triangle generating unit may include a first vector from a vertex of the boundary triangle except the boundary point to a boundary point, and a second vector from the one vertex to a second vertex of the boundary triangle other than the boundary point, The type of the boundary triangle is determined to be concave or convex. At this time, the rendering unit is configured to render a part of the boundary triangle in a curved shape based on the type of the boundary triangle.

일 실시예에 따른, 스트로크 기반의 이미지 렌더링 방법은, 경로를 따른 스트로크를 나타내는 복수의 에지점으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 스트로크의 폭을 이용하여 복수의 경계점을 생성하는 단계; 각 에지점, 각 경계점 및 경계점들 사이의 중간점을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형 및 하나 이상의 경계 삼각형을 포함하는 메쉬를 생성하는 단계; 및 상기 메쉬를 이미지로 렌더링하는 단계를 포함한다.According to one embodiment, a stroke-based image rendering method includes generating a plurality of boundary points from a plurality of edge points representing a stroke along a path, using a width of a normal and a stroke corresponding to each of the plurality of edge points ; Generating a mesh including at least one inner triangle and at least one boundary triangle corresponding to the stroke using the midpoint between each edge point, each boundary point and the boundary points; And rendering the mesh as an image.

일 실시예에 따른, 스트로크 기반의 이미지 렌더링 방법은, 상기 복수의 경계점을 생성하는 단계 전에, 경로 데이터 및 스트로크의 폭을 포함하는 스트로크 데이터를 수신하는 단계; 및 상기 스트로크 데이터로부터 상기 복수의 에지점을 생성하는 단계를 더 포함한다.According to one embodiment, a stroke-based image rendering method includes the steps of: receiving stroke data including path data and a width of a stroke before the step of generating the plurality of boundary points; And generating the plurality of edge points from the stroke data.

일 실시예에서, 상기 복수의 경계점을 생성하는 단계는, 상기 복수의 에지점 각각에 대하여, 에지점에 대응되는 법선상에서 에지점의 양 측면에 각각 위치하는 한 쌍의 경계점을 생성하는 단계를 포함한다.In one embodiment, the step of generating the plurality of boundary points includes the step of generating, for each of the plurality of edge points, a pair of boundary points respectively located on both sides of the edge point on a normal line corresponding to the edge point do.

일 실시예에서, 상기 복수의 에지점은 경로의 진행 방향을 따라 순차적으로 위치하는 제1 에지점 및 제2 에지점을 포함한다. 이때, 상기 한 쌍의 경계점을 생성하는 단계는, 상기 제1 에지점에 대응되는 제1 법선 및 상기 제2 에지점에 대응되는 제2 법선이 서로 교차할 경우, 상기 제2 에지점에 대응되는 경계점 중 하나를 상기 제1 법선과 상기 제2 법선의 교차점에 생성하는 단계를 포함한다.In one embodiment, the plurality of edge points include a first edge point and a second edge point that are sequentially located along the traveling direction of the path. If the first normal line corresponding to the first edge point and the second normal line corresponding to the second edge point intersect with each other, the step of generating the pair of boundary points may include: And generating one of the boundary points at an intersection of the first normal line and the second normal line.

일 실시예에서, 상기 메쉬를 생성하는 단계는, 각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 하나 이상의 중간점을 포함하며 스트로크의 경로와 만나는 상기 내부 삼각형을 생성하는 단계; 및 각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 경계점을 포함하며 스트로크의 경로와 만나지 않는 상기 경계 삼각형을 생성하는 단계를 포함한다.In one embodiment, the step of generating the mesh comprises: connecting the at least one of the respective edge points, each of the boundary points and each of the midpoints to create the internal triangle including the at least one midpoint and meeting the path of the stroke; And connecting the at least one of each edge point, each boundary point, and each intermediate point to generate the boundary triangle including the boundary point and not meeting the path of the stroke.

일 실시예에서, 상기 경계 삼각형을 생성하는 단계는, 경계점을 제외한 상기 경계 삼각형의 하나의 꼭지점으로부터 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 상기 경계 삼각형의 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱에 기초하여 상기 경계 삼각형의 종류를 오목 또는 볼록으로 결정하는 단계를 포함한다. 이때, 상기 메쉬를 이미지로 렌더링하는 단계는, 상기 경계 삼각형의 종류에 기초하여 상기 경계 삼각형 내부의 일부 영역을 곡선 형태로 렌더링하는 단계를 포함한다.In one embodiment, the step of generating the boundary triangles may include: generating a first vector directed from one vertex of the boundary triangle except the boundary point to a boundary point, and a second vector directed to another vertex of the boundary triangle excluding the boundary point from the one vertex. And determining the type of the boundary triangle as concave or convex based on the vector product between the two vectors. At this time, rendering the mesh as an image includes rendering a part of the boundary triangle in a curved shape based on the type of the boundary triangle.

일 실시예에 따른 컴퓨터 프로그램은, 하드웨어와 결합되어 상기 스트로크 기반의 이미지 렌더링 방법을 수행하도록 매체에 기록된 것일 수 있다.A computer program according to one embodiment may be written to the medium to perform the stroke-based image rendering method in combination with hardware.

본 발명의 일 측면에 따른 스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치, 방법 및 컴퓨터 프로그램에 의하면, 입력 이벤트가 경로를 따라 연속적으로 발생되는 스트로크를 내부 삼각형(inner triangle) 및 경계 삼각형(boundary triangle)으로 분할함으로서 곡선 렌더링에 의하여 자연스럽게 묘화할 수 있다. 이러한 렌더링 기법은 GPU(Graphic Processing Unit) 기반의 벡터 그래픽(vector graphics)에 용이하게 활용될 수 있다. According to an apparatus, a method, and a computer program for a stroke-based image rendering device according to an aspect of the present invention, strokes generated successively along an input event are referred to as an inner triangle and a boundary triangle), it can be rendered naturally by curve rendering. This rendering technique can be easily applied to vector graphics based on GPU (Graphic Processing Unit).

도 1은 일 실시예에 따른 스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치의 개략적인 블록도이다.
도 2는 일 실시예에 따른 스트로크 기반의 이미지 렌더링 방법의 개략적인 순서도이다.
도 3a 및 3b는 스트로크를 나타내는 이미지이다.
도 4a 내지 4d는 경로를 따른 스트로크로부터 복수의 에지점(edge point)을 생성하는 것을 나타내는 이미지이다.
도 5a 내지 5c는 에지점으로부터 경계점(boundary point)을 생성하는 것을 설명하기 위한 이미지이다.
도 6a 및 6b는 각각 도 4c 및 4d의 에지점으로부터 생성된 경계점을 나타내는 이미지이다.
도 7a는 에지점, 경계점 및 경계점들 사이의 중간점(middle point)으로부터 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 이미지이다.
도 7b는 도 7a의 내부 삼각형 및 경계 삼각형으로부터 렌더링된 최종 이미지를 나타내는 이미지이다.
도 8 내지 10은 에지점, 경계점 및 중간점으로부터 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 또 다른 이미지들이다.
도 11 및 도 12는 에지점, 경계점 및 중간점으로부터 접힌(folded) 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 이미지들이다.
1 is a schematic block diagram of a stroke-based image rendering apparatus according to one embodiment.
2 is a schematic flow diagram of a stroke-based image rendering method according to one embodiment.
3A and 3B are images showing strokes.
Figures 4A-4D are images representing creating a plurality of edge points from a stroke along a path.
5A to 5C are images for explaining creation of a boundary point from an edge point.
Figs. 6A and 6B are images showing the boundary points generated from the edge points of Figs. 4C and 4D, respectively.
7A is an image showing creating an inner triangle and a boundary triangle corresponding to the strokes from the middle point between the edge point, the boundary point and the boundary points.
7B is an image showing the final image rendered from the inner triangle and the boundary triangle in FIG. 7A. FIG.
8 to 10 are still images showing the creation of an inner triangle and a boundary triangle corresponding to the strokes from the edge point, the boundary point and the midpoint.
11 and 12 are images showing the creation of an inner triangle and a boundary triangle corresponding to the folded strokes from the edge point, the boundary point and the midpoint.

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 일 실시예에 따른 스트로크(stroke) 기반의 이미지 렌더링(rendering) 장치의 개략적인 블록도이다. 1 is a schematic block diagram of a stroke-based image rendering apparatus according to one embodiment.

도 1을 참조하면, 본 실시예에 따른 이미지 렌더링 장치는 경계점(boundary point) 생성부(30), 메쉬(mesh) 생성부(40) 및 렌더링부(50)를 포함한다. 일 실시예에서, 이미지 렌더링 장치는 입력부(10) 및/또는 에지점(edge point) 생성부(20)를 더 포함한다. 실시예들에 따른 이미지 렌더링 장치는 전적으로 하드웨어이거나, 전적으로 소프트웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 이미지 렌더링 장치는 데이터 처리 능력이 구비된 하드웨어 및 이를 구동시키기 위한 운용 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "시스템" 및 "장치" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 GPU(Graphic Processing Unit) 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.Referring to FIG. 1, an image rendering apparatus according to the present embodiment includes a boundary point generator 30, a mesh generator 40, and a rendering unit 50. In one embodiment, the image rendering apparatus further comprises an input 10 and / or an edge point generator 20. The image rendering device according to embodiments may be entirely hardware, entirely software, or partially hardware, and may be partially software. For example, the image rendering apparatus may collectively refer to hardware having data processing capability and operating software for driving the hardware. The terms "unit," "system," and " device "and the like are used herein to refer to a combination of hardware and software driven by that hardware. For example, the hardware may be a data processing device comprising a GPU (Graphic Processing Unit) or other processor. Also, the software may refer to a running process, an object, an executable, a thread of execution, a program, and the like.

실시예들에 따른 이미지 렌더링 장치를 구성하는 각각의 부(10, 20, 30, 40, 50)는 반드시 물리적으로 구분되는 별개의 구성요소를 지칭하는 것으로 의도되지 않는다. 즉, 도 1에서 입력부(10), 에지점 생성부(20), 경계점 생성부(30), 메쉬 생성부(40) 및 렌더링부(50)는 서로 구분되는 별개의 블록으로 도시되나, 실시예에 따라서는 입력부(10), 에지점 생성부(20), 경계점 생성부(30), 메쉬 생성부(40) 및 렌더링부(50) 중 일부 또는 전부가 동일한 하나의 장치 내에 집적화될 수 있다. 또한, 각각의 부(10, 20, 30, 40, 50)는 이들이 구현된 컴퓨팅 장치에서 수행하는 동작에 따라 장치를 기능적으로 구분한 것일 뿐, 반드시 서로 분리된 별개의 소자를 의미하는 것이 아니다. Each of the parts 10, 20, 30, 40, 50 constituting the image rendering apparatus according to the embodiments is not necessarily intended to refer to a separate component which is physically distinct. 1, the input unit 10, the edge point generation unit 20, the boundary point generation unit 30, the mesh generation unit 40, and the rendering unit 50 are shown as separate blocks separated from each other, Some or all of the input unit 10, the edge point generating unit 20, the boundary point generating unit 30, the mesh generating unit 40, and the rendering unit 50 may be integrated into one and the same device. Further, each of the units 10, 20, 30, 40, and 50 is a functionally separated device according to the operation performed in the computing device in which they are implemented, and does not necessarily mean a separate device separate from each other.

예를 들어, 실시예들에 따른 스트로크 기반의 이미지 렌더링 장치는 스마트폰(smartphone)과 같은 모바일 장치에 집적화된 형태로 구현되어, 모바일 장치상의 GPU 및 마이크로프로세서(microprocessor)를 이용하여 동작을 수행하고, 수행된 결과물을 모바일 장치의 디스플레이 수단에의 표시를 위하여 제공할 수 있다. 그러나, 이는 예시적인 것으로서, 다른 실시예에서는 입력부(10), 에지점 생성부(20), 경계점 생성부(30), 메쉬 생성부(40) 및 렌더링부(50) 중 하나 이상이 다른 부와 물리적으로 구분되는 별개의 장치로 구현될 수도 있다. 예컨대, 각각의 부(10, 20, 30, 40, 50)는 분산 컴퓨팅 환경 하에서 서로 통신 가능하게 연결된 컴포넌트들일 수도 있다.For example, the stroke-based image rendering apparatus according to embodiments may be implemented in a form integrated in a mobile device such as a smartphone, and may be operated using a GPU and a microprocessor on the mobile device , And provide the resultant for display on the display means of the mobile device. However, in another embodiment, at least one of the input unit 10, the edge point generating unit 20, the boundary point generating unit 30, the mesh generating unit 40, It may be implemented as a separate device that is physically separate. For example, each of the components 10, 20, 30, 40, 50 may be components that are communicatively coupled to one another in a distributed computing environment.

도 2는 일 실시예에 따른 이미지 렌더링 방법의 개략적인 순서도이다. 도 1 및 도 2를 참조하여, 실시예들에 따른 이미지 렌더링 장치 및 방법에 대하여 구체적으로 설명한다. 2 is a schematic flow diagram of an image rendering method according to one embodiment. An image rendering apparatus and method according to embodiments will be described in detail with reference to FIGS. 1 and 2. FIG.

먼저, 입력부(10)는 이미지로 렌더링될 스트로크에 상응하는 스트로크 데이터를 수신할 수 있다(S1). 본 명세서에서 스트로크란 입력 이벤트가 경로를 따라 발생되는 데이터를 지칭한다. 도 3a 및 3b는 스트로크를 나타내는 이미지로서, 도 3 및 3b를 참조하면, 스트로크는 사용자의 입력에 의해 정의되는 경로(300)를 따라 경로(300)로부터 소정의 폭(W) 내에 위치한 픽셀(pixel)들을 채운 것을 의미한다. 경로(300)를 정의하는 사용자 입력은 터치 스크린(touch screen)에 대한 터치 입력 또는 펜 입력 등일 수 있다. 또한, 경로(300)는 베지어 곡선(Bezier Curve), 직선(line), 자유선(free line) 또는 다른 상이한 형태의 선으로 된 하나 이상의 구간을 포함할 수 있다. First, the input unit 10 may receive stroke data corresponding to a stroke to be rendered as an image (S1). Stroke, as used herein, refers to data where an input event occurs along a path. 3A and 3B are images showing strokes, with reference to FIGS. 3 and 3B, a stroke is a pixel located within a predetermined width W from a path 300 along a path 300 defined by the user's input ). The user input defining the path 300 may be a touch input to a touch screen, a pen input, or the like. Path 300 may also include one or more segments of a Bezier Curve, a line, a free line, or other different types of lines.

입력부(10)가 수신하는 스트로크 데이터는 경로 데이터 및 스트로크의 폭을 포함할 수 있다. 경로 데이터는 도 3a의 경로(300)에 대응되며, 스트로크의 폭은 경로(300)를 정의하는 사용자 입력에 기초하여 경로(300)를 따라 일정 간격마다 결정될 수 있다. 예컨대, 사용자가 터치 스크린에 손가락을 댄 채로 스크린상의 A 지점으로부터 B 지점까지 손을 이동시키면, A 지점부터 B 지점까지의 손가락의 이동 경로가 경로 데이터에 해당된다. 또한, 사용자의 손가락이 이동하는 속도나 터치 입력의 강도를 기준으로 스트로크의 폭이 정의된다. 예컨대, 사용자가 손가락을 빠르게 움직인 영역에서는 스트로크의 폭이 작고 손가락을 느리게 움직인 영역에서는 스트로크의 폭이 크게 하거나, 또는 터치 입력의 강도가 약한 영역에서는 스트로크의 폭이 작고 터치 입력의 강도가 강한 영역에서는 스트로크의 폭이 크게 할 수 있다. The stroke data received by the input unit 10 may include the path data and the stroke width. The path data corresponds to path 300 in FIG. 3A, and the width of the stroke may be determined at regular intervals along path 300 based on user input defining path 300. For example, when a user moves his or her hand from point A to point B on the screen while holding a finger on the touch screen, the movement path of the finger from point A to point B corresponds to the path data. In addition, the width of the stroke is defined based on the speed at which the user's finger moves or the strength of the touch input. For example, in the area where the user quickly moves the finger, the width of the stroke is small in the area where the finger is moved slowly. In the area where the strength of the touch input is weak, the stroke width is small and the strength of the touch input is strong The width of the stroke can be increased.

에지점 생성부(20)는, 스트로크 데이터로부터 복수의 에지점을 생성할 수 있다(S2). 에지점은 스트로크의 경로상에 일정 간격으로 배치되며 각 에지점은 이들 사이의 선인 에지로 연결된다. 또한, 각각의 에지점에 대해서는 이에 대응되는 스트로크의 폭이 지정된다. 도 4a 및 4b는 경로 데이터(410, 420)를 나타내며, 도 4c 및 4d는 각각 도 4a 및 4b의 경로 데이터로부터 생성된 복수의 에지점(411, 421)을 나타낸다. The edge point generating unit 20 can generate a plurality of edge points from the stroke data (S2). The edge points are arranged at regular intervals on the path of the stroke, and each edge point is connected to a leading edge between them. For each edge point, the width of the corresponding stroke is specified. Figures 4A and 4B show path data 410 and 420 and Figures 4C and 4D show a plurality of edge points 411 and 421, respectively, generated from the path data of Figures 4A and 4B.

경계점 생성부(30)는, 에지점 생성부(20)로부터 에지점의 정보를 수신하고, 이에 기초하여 복수 개의 경계점을 생성할 수 있다(S3). 본 명세서에서 경계점은 스트로크의 외곽선을 정의하기 위한 점들으로서, 스트로크의 경로상에 위치하는 각 에지점으로부터 각 에지점에 대응되는 법선 및 스트로크의 폭을 이용하여 생성된다. 본 명세서에서 각 에지점의 접선은 순차적으로 배열된 에지점들에서 인접 에지점들의 위치를 이용하여 후술하는 수학식 1과 같이 정의되며, 본 명세서에서 각 에지점의 법선은 전술한 접선과 수직하는 직선으로 정의된다. 각 에지점에 대응되는 법선상에 위치하면서, 해당 에지점으로부터 해당 에지점에 대응되는 스트로크 폭의 1/2만큼 이격되도록 해당 에지점의 양 측면에 각각 경계점이 생성될 수 있다. The boundary point generating unit 30 receives the information of the edge points from the edge point generating unit 20 and can generate a plurality of boundary points based on the received information. In this specification, a boundary point is a point for defining an outline of a stroke, and is generated by using the width of a normal line and a stroke corresponding to each edge point from each edge point located on the path of the stroke. In the present specification, the tangent of each edge point is defined by the following equation (1) using the positions of adjacent edge points in the sequentially arranged edge points. In this specification, the normal of each edge point is perpendicular to the above- It is defined as a straight line. The boundary points may be generated on both sides of the edge point so as to be spaced apart from the corresponding edge point by 1/2 of the stroke width corresponding to the edge point while being positioned on the normal line corresponding to each edge point.

도 5a는 일 실시예에 따라 에지점으로부터 경계점을 생성하는 것을 설명하기 위한 이미지이다. 5A is an image for explaining generating a boundary point from an edge point according to an embodiment.

도 5a를 참조하면, 에지점은 순차적으로 배열된 에지점 Vn -1, Vn 및 Vn +1을 포함하며, 에지점의 하첨자가 증가하는 방향이 스트로크의 진행 방향에 해당된다. 이때, 에지점 Vn 에 대응되는 경계점을 생성하는 과정에 대하여 설명한다. 먼저, 에지점 Vn 의 접선

Figure 112015002873268-pat00001
은 해당 에지점과 인접하여 위치한 Vn -1 및 Vn +1 에 기초하여 다음 수학식 1에 의해 정의된다.Referring to FIG. 5A, the edge points include sequentially arranged edge points V n -1 , V n, and V n +1 , and the direction in which the edge points of the edge points increase corresponds to the stroke direction of the stroke. At this time, a process of generating a boundary point corresponding to the edge point V n will be described. First, the tangent of the edge point V n
Figure 112015002873268-pat00001
Is defined by the following equation (1) based on V n -1 and V n +1 located adjacent to the edge point.

Figure 112015002873268-pat00002
Figure 112015002873268-pat00002

에지점들은 각각에 대응되는 스트로크 폭 값을 갖는다. 에지점 Vn에 대응되는 스트로크의 폭(W)을 이용하여, 한 쌍의 경계점 VLn 및 VRn이 에지점 Vn 의 접선

Figure 112015002873268-pat00003
과 수직한 직선(즉, 에지점 Vn 의 법선)상에 생성된다. 경계점 VLn 및 VRn 각각으로부터 Vn까지의 거리는 Vn에 대응되는 스트로크의 폭(W)의 1/2이다. 즉, VLn 및 Vn 사이의 거리는 W/2 이며, 마찬가지로 Vn 및 VRn 사이의 거리도 W/2 이다. 이상의 과정을 각 에지점에 대하여 반복함으로써, 각 에지점에 대응되는 한 쌍의 경계점 VLn 및 VRn (n은 임의의 자연수)이 생성될 수 있다. 본 명세서에서, 대응되는 에지점에 대하여 경로의 진행 방향에 대해 좌측에 위치한 경계점(예컨대, VLn)은 좌측 경계점으로도 지칭되며, 대응되는 에지점에 대하여 경로의 진행 방향에 대해 우측에 위치한 경계점(예컨대, VRn)은 우측 경계점으로도 지칭된다. 이와 같이 생성된 경계점들은, 스트로크의 메쉬에서 경계 삼각형(boundary triangle)의 구성을 위하여 사용되며 이는 상세히 후술한다.The edge points have respective stroke width values corresponding to them. Using the width W of the stroke corresponding to the edge point V n , the pair of boundary points VL n and VR n are tangent to the edge point V n
Figure 112015002873268-pat00003
(I.e., the normal of the edge point V n ). The distance from each of the boundary points VL n and VR n to V n is 1/2 of the width W of the stroke corresponding to V n . That is, the distance between VL n and V n is W / 2, and the distance between V n and VR n is also W / 2. By repeating the above process for each edge point, a pair of boundary points VL n and VR n (n is an arbitrary natural number) can be generated. In this specification, a boundary point (for example, VL n ) located on the left side with respect to the traveling direction of the path with respect to the corresponding edge point is also referred to as a left boundary point, and a boundary point (E.g., VR n ) is also referred to as the right border point. The boundary points thus generated are used for constructing the boundary triangle in the mesh of the stroke, which will be described in detail later.

도 5b 및 도 5c는 또 다른 실시예에 따라 에지점으로부터 경계점을 생성하는 것을 설명하기 위한 이미지이다.5B and 5C are images for explaining generating boundary points from edge points according to another embodiment.

도 5b를 참조하면, 도 5a를 참조하여 전술한 방식으로 각 에지점의 경계점을 생성하는 과정에 있어서, 순차적으로 배열된 에지점들 중 선행 에지점 Vn의 법선이, Vn에 인접하여 위치하는 후행 에지점 Vn +1의 법선과 교차하는 경우가 있다. 이때 경계점 생성부가 에지점 Vn에 대응되는 경계점 VLn, VRn, 및 에지점 Vn +1에 대응되는 VLn +1, VRn +1을 도 5b와 같이 각각 생성하게 되면, 렌더링된 이미지에서 스트로크의 경계가 매끄럽게 않은 결과가 된다. 이를 해결하기 위하여, 일 실시예에서는, 도 5c에 도시된 것과 같이 후행 에지점 Vn +1에 대응되는 경계점 VRn +1을 선행 에지점 Vn의 법선과 후행 에지점 Vn +1의 법선의 교차점으로 이동시킨다. 그러나, 이는 예시적인 것으로서, 다른 실시예에서 상기 이동 과정은 생략될 수도 있다.Referring to FIG. 5B, in the process of generating the boundary points of the respective edge points in the manner described above with reference to FIG. 5A, the normal line of the leading edge point V n among the sequentially arranged edge points is located adjacent to V n And the normal line of the trailing edge point V n +1 . At this time, when the boundary point generating portion edge point VL n corresponding to V n feature points n VL, n VR, and the edge point V n + 1 corresponding to +1, are each generated as shown in Fig. 5b the VR n + 1, the rendered image The boundary of the stroke becomes non-smooth. To solve this problem, in one embodiment, the trailing edge boundary point V n VR n the leading edge point V n normal to the trailing edge point of the normal line V of the n + 1 + 1 corresponding to +1 as shown in Figure 5c As shown in FIG. However, this is an exemplary one, and in another embodiment the movement process may be omitted.

도 6a는 전술한 과정에 의하여 도 4c의 에지점(411)으로부터 생성된 경계점(611, 612)을 나타내는 이미지이며, 도 6b는 전술한 과정에 의하여 도 4d의 에지점(421)으로부터 생성된 경계점(621, 622)을 나타내는 이미지이다. FIG. 6A is an image showing the boundary points 611 and 612 generated from the edge point 411 of FIG. 4C by the above-described process, FIG. 6B is an image showing the boundary points 611 and 612 generated from the edge point 421 of FIG. (621, 622).

다시 도 1 및 도 2를 참조하면, 메쉬 생성부(40)는 에지점, 경계점 및 경계점들 사이의 중간점(middle point)을 이용하여 GPU의 렌더링 단위인 삼각형으로 이루어지며 스트로크에 대응되는 메쉬를 생성한다(S4, S5). 일 실시예에서 메쉬 생성부(40)는, 스트로크의 내부 삼각형을 생성(S4)하는 내부 삼각형 생성부(41) 및 스트로크의 경계 삼각형을 생성(S5)하는 경계 삼각형 생성부(42)를 포함한다. 본 명세서의 경계 삼각형은 스트로크의 외곽 부분을 묘화하기 위한 것으로서 적어도 하나의 경계점을 포함한다. 또한, 본 명세서의 내부 삼각형은 스트로크의 상기 외곽 부분을 제외한 안쪽 부분을 묘화하기 위한 것으로서 하나 이상의 중간점을 포함하며 스트로크의 경로와 적어도 부분적으로 만난다. Referring again to FIGS. 1 and 2, the mesh generation unit 40 includes a triangle, which is a rendering unit of the GPU, using a middle point between edge points, boundary points, and boundary points, (S4, S5). The mesh generation unit 40 includes an inner triangle generation unit 41 for generating an inner triangle of a stroke (S4) and a boundary triangle generation unit 42 for generating a boundary triangle of the stroke (S5) . The boundary triangle in this specification is for drawing the outer portion of the stroke and includes at least one boundary point. Further, the inner triangle in this specification is for drawing an inner portion except the outer portion of the stroke, and includes at least one midpoint and meets at least partly with the path of the stroke.

도 7a는 에지점, 경계점 및 중간점으로부터 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 이미지로서, 도 7a를 참조하여 일 실시예에 따른 메쉬 생성부에서 내부 삼각형 생성부 및 경계 삼각형 생성부의 동작을 구체적으로 설명한다.7A is an image showing creation of an inner triangle and a boundary triangle corresponding to a stroke from an edge point, a boundary point and a middle point. Referring to FIG. 7A, in the mesh generation unit according to an embodiment, The operation of the unit will be described in detail.

도 1 및 도 7a를 참조하면, 메쉬 생성부(40)는 우선 인접한 에지점들에 대응되는 경계점들 사이의 중간점을 생성할 수 있다. 즉, 에지점 Vn의 경계점 VLn 및 에지점 Vn -1의 경계점 VLn -1 사이의 중간점으로서, MLn -1을 생성할 수 있다. 동일한 방식으로, 경계점 VRn -1 및 VRn 사이의 중간점 MRn -1, 경계점 VLn 및 VLn +1 사이의 중간점 MLn, 경계점 VRn 및 VRn+1 사이의 중간점 MRn이 생성될 수 있다. Referring to FIGS. 1 and 7A, the mesh generator 40 may first generate a midpoint between boundary points corresponding to adjacent edge points. That is, as the midpoint between the edge points and edge point V n feature points VL n V n -1 n -1 of the boundary point VL, it is possible to generate the ML n -1. In the same manner, the midpoint MR n -1 between the boundary points VR n -1 and VR n , the midpoint ML n between the boundary points VL n and VL n +1 , the midpoint MR n between the boundary points VR n and VR n + Can be generated.

경계 삼각형 생성부(42)는, 각각의 경계점으로부터 이에 인접한 점들을 연결하여 하나 이상의 경계 삼각형을 생성할 수 있다. 예를 들어, 경계점 VLn 및 이에 인접한 중간점 MLn-1과 MLn을 세 꼭지점으로 하여 경계 삼각형(710)이 정의된다. 마찬가지로, 경계점 VRn 및 이에 인접한 중간점 MRn -1과 MRn을 세 꼭지점으로 하여 경계 삼각형(720)이 정의된다. 일 실시예에서, 경계 삼각형 생성부(42)는, 경계 삼각형(710, 720)의 종류를 볼록(convex) 및 오목(concave) 중 어느 하나로 결정한다. 상기 종류는, 경계 삼각형(710, 720)에서 경계점을 제외한 하나의 꼭지점으로부터 상기 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱(cross product)에 기초하여 결정된다. The boundary triangle generation unit 42 may generate one or more boundary triangles by connecting adjacent points from each boundary point. For example, a boundary triangle 710 is defined with the boundary point VL n and the intermediate points ML n-1 and ML n adjacent thereto as three vertexes. Similarly, a boundary triangle 720 is defined with the boundary point VR n and the intermediate points MR n -1 and MR n adjacent thereto as three vertexes. In one embodiment, the boundary triangle generation unit 42 determines the type of the boundary triangles 710 and 720 as either convex or concave. This kind is a vector product between a first vector from one vertex except for a border point in boundary triangles 710 and 720 to the border point and a second vector from the one vertex to another vertex except for the border point ≪ / RTI >

구체적으로는, 제1 및 제2 벡터와 수직한 방향(도면 수직 방향)을 z 축으로 정의하고, 도면으로부터 전방을 향하여 돌출되는 방향을 z축 상의 양의 방향이라고 정의할 수 있다. 이때, 좌측 경계점을 포함하는 경계 삼각형(본 명세서에서, 좌측 경계 삼각형이라고도 지칭함)의 경우, 제1 및 제2 벡터의 벡터 곱의 z 축 방향을 따른 크기가 0 또는 음의 값일 경우 해당 경계 삼각형을 볼록으로 결정하고, 상기 크기가 양의 값일 경우 해당 경계 삼각형을 오목으로 결정한다. 경계 삼각형(710)을 예로 들어 설명하면, 경계점이 아닌 경계 삼각형(710)의 꼭지점 MLn -1로부터 경계점 VLn을 향하는 벡터

Figure 112015002873268-pat00004
이 제1 벡터에 해당되며, MLn -1로부터 경계점이 아닌 다른 꼭지점 MLn을 향하는 벡터
Figure 112015002873268-pat00005
가 제2 벡터에 해당된다. 이때, 전술한 두 벡터의 벡터 곱
Figure 112015002873268-pat00006
은 z 축 방향에서 음의 크기를 갖는다. 따라서, 경계 삼각형(710)의 종류는 볼록에 해당된다. Specifically, a direction perpendicular to the first and second vectors (perpendicular to the drawing) is defined as a z-axis, and a direction projecting forward from the drawing is defined as a positive direction on the z-axis. In this case, in the case of the boundary triangle including the left boundary point (also referred to as the left boundary triangle in this specification), when the magnitude of the vector product of the first and second vectors along the z-axis direction is 0 or a negative value, If the size is a positive value, the boundary triangle is determined as a concave. Taking the boundary triangle 710 as an example, a vector from the vertex ML n -1 of the boundary triangle 710 that is not the boundary point to the boundary point VL n
Figure 112015002873268-pat00004
Corresponds to the first vector, and a vector from ML n -1 to a vertex ML n other than the boundary point
Figure 112015002873268-pat00005
Corresponds to the second vector. At this time, the vector product of the two vectors
Figure 112015002873268-pat00006
Has a negative magnitude in the z-axis direction. Therefore, the type of the boundary triangle 710 corresponds to the convexity.

한편, 우측 경계점을 포함하는 경계 삼각형(본 명세서에서, 우측 경계 삼각형이라고도 지칭함)의 경우, 좌측 경계 삼각형과 반대의 방식으로 경계 삼각형의 종류를 결정한다. 즉, 제1 및 제2 벡터의 벡터 곱의 z 축 방향을 따른 크기가 0 또는 음의 값일 경우 해당 경계 삼각형을 오목으로 결정하고, 상기 크기가 양의 값일 경우 해당 경계 삼각형을 볼록으로 결정한다. 경계 삼각형(720)을 예로 들어 설명하면, 경계 삼각형(720)에서는 경계점이 아닌 경계 삼각형(720)의 꼭지점 MRn -1로부터 경계점 VRn을 향하는 벡터

Figure 112015002873268-pat00007
이 제1 벡터에 해당되며, MRn -1로부터 경계점이 아닌 다른 꼭지점 MRn을 향하는 벡터
Figure 112015002873268-pat00008
가 제2 벡터에 해당된다. 이때, 제1 및 제2 벡터의 벡터 곱
Figure 112015002873268-pat00009
은 z 축 방향에서 음의 크기를 가지므로, 경계 삼각형(720)의 종류는 오목에 해당된다.On the other hand, in the case of the boundary triangle including the right boundary point (also referred to as the right boundary triangle in this specification), the type of boundary triangle is determined in a manner opposite to the left boundary triangle. That is, if the magnitude of the vector product of the first and second vectors along the z-axis direction is 0 or a negative value, the boundary triangle is determined to be concave, and if the size is positive, the boundary triangle is determined to be convex. For example, in the boundary triangle 720, a vector from the vertex MR n -1 of the boundary triangle 720 that is not the boundary point to the boundary point VR n
Figure 112015002873268-pat00007
Corresponds to the first vector, and a vector from MR n -1 to a vertex MR n other than the boundary point
Figure 112015002873268-pat00008
Corresponds to the second vector. At this time, the vector products of the first and second vectors
Figure 112015002873268-pat00009
Has a negative magnitude in the z-axis direction, so that the kind of the boundary triangle 720 corresponds to the concave.

오목 또는 볼록으로 결정된 경계 삼각형(710, 720)의 종류는, 후술하는 렌더링 과정에서 미리 결정된 쉐이더(shader)를 적용함으로써 경계 삼각형(710, 720) 내의 영역을 곡선 형태로 묘화하기 위하여 사용된다. 곡선 렌더링 과정에 대해서는 상세히 후술한다.The types of the boundary triangles 710 and 720 determined as concave or convex are used to draw a curved shape of an area in the boundary triangles 710 and 720 by applying a predetermined shader in a rendering process to be described later. The curve rendering process will be described in detail later.

한편, 내부 삼각형 생성부(41)는, 각각의 중간점으로부터 인접한 점들을 연결하여 하나 이상의 내부 삼각형을 생성할 수 있다. 도 7a의 중간점 MLn -1, MRn -1 및 경계점 VRn을 꼭지점으로 하여 내부 삼각형(730)이 생성되며, 중간점 MLn -1, MLn 및 경계점 VRn을 꼭지점으로 하여 내부 삼각형(740)이 생성되고, 중간점 MLn, MRn 및 경계점 VRn을 꼭지점으로 하여 내부 삼각형(750)이 생성된다. 그러나 이는 예시적인 것으로서, 스트로크 데이터를 하나 이상의 내부 삼각형으로 분할하는 방식은 도시된 것과 상이할 수도 있다. 메쉬 생성을 위하여 점들로부터 내부 삼각형을 생성하는 다양한 방법들은 본 발명의 기술분야에서 잘 알려져 있으므로, 본 명세서에서는 자세한 설명을 생략한다.On the other hand, the inner triangle generating unit 41 may connect one or more inner triangles by connecting adjacent points from each intermediate point. The inner triangle 730 is generated with the intermediate points ML n -1 and MR n -1 and the boundary point VR n in FIG. 7A as vertices, and the inner triangle 730 is generated with the intermediate points ML n -1 and ML n and the boundary point VR n as vertices, The inner triangle 750 is generated with the intermediate points ML n and MR n and the boundary point VR n as vertexes. However, this is illustrative, and the manner of dividing the stroke data into one or more inner triangles may be different from that shown. Various methods of creating an inner triangle from the points for mesh generation are well known in the art, and therefore a detailed description thereof will be omitted herein.

이상에서 설명한 것과 같은 방식으로, 경계 삼각형 및 내부 삼각형을 포함하는 스트로크의 메쉬가 생성된다(S6). 이상과 같이 생성된 메쉬는 GPU의 렌더링 단위인 삼각형으로 이루어져 있으므로, 렌더링부(50)에서는 메쉬를 이미지로 렌더링함으로써 스트로크를 묘화할 수 있다(S7). 렌더링을 수행함에 있어서, 렌더링부(50)는 내부 삼각형에는 꽉찬 음영(solid shader)을 적용하여 내부 삼각형 전체가 이미지로 렌더링되도록 하는 반면, 경계 삼각형에는 곡선 음영(curve shader)을 적용함으로써 경계 삼각형 내의 일부 영역만을 이미지로 렌더링한다. In the same manner as described above, a mesh of strokes including a boundary triangle and an inner triangle is generated (S6). Since the generated mesh is a triangle, which is a rendering unit of the GPU, the rendering unit 50 can draw the stroke by rendering the mesh as an image (S7). In rendering, the rendering unit 50 applies a solid shader to the inner triangle so that the entire inner triangle is rendered as an image, while the curve shader is applied to the boundary triangle, Only some areas are rendered as images.

도 7a에서 볼록에 해당되는 경계 삼각형(710)의 경우, 경계점(VLn)을 마주보는 변과 곡선 사이의 영역만을 볼록한 형태의 이미지로 전환하게 된다. 한편, 오목에 해당되는 경계 삼각형(720)의 경우에는, 경계점(VRn)을 포함하여 경계점(VRn)과 곡선 사이의 영역만을 오목한 형태의 이미지로 전환하게 된다. 그 결과 최종적으로 도 7b에 도시된 것과 같이 자연스러운 곡선 형태의 이미지를 얻을 수 있다. 경계 삼각형의 곡선 렌더링에 대해서는, "Resolution Independent Curve Rendering using Programmable Graphics Hardware"의 명칭을 갖는 Charles Loop 및 Jim Blinn의 논문(Siggraph 2005)과, 동 저자들을 발명자들로 하는 미국특허출원 공개공보 US2007/0097123호 등에 의하여 본 발명의 기술분야에서 잘 알려져 있으므로, 발명의 요지를 명확하게 하기 위하여 본 명세서에서는 자세한 설명을 생략한다.In the case of the boundary triangle 710 corresponding to the convex in FIG. 7A, only the area between the side facing the boundary point VL n and the curve is converted into a convex shape image. In the case of a triangle boundary 720 corresponding to the recess is, including the boundary points (VR n) it is switched only the area between the boundary point (n VR) and curve to an image of a concave shape. As a result, a natural curved image can be finally obtained as shown in FIG. 7B. For the rendering of the boundary triangle curves, see Charles Loop and Jim Blinn (Siggraph 2005) entitled " Resolution Independent Curve Rendering using Programmable Graphics Hardware ", and US Patent Application Publication No. US 2007/0097123 Since the present invention is well known in the technical field of the present invention, detailed description will be omitted in order to clarify the gist of the present invention.

도 8 내지 10은 에지점, 경계점 및 중간점으로부터 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 또 다른 이미지들이다.8 to 10 are still images showing the creation of an inner triangle and a boundary triangle corresponding to the strokes from the edge point, the boundary point and the midpoint.

도 8을 참조하면, 도 8은 도 7a 및 7b에 도시된 것과 대칭적인 형태의 스트로크를 도시한다. 경계점 VLn 및 이에 인접한 중간점 MLn -1, MLn을 세 꼭지점으로 하여 경계 삼각형(810)이 정의된다. 마찬가지로, 경계점 VRn 및 이에 인접한 중간점 MRn -1, MRn을 세 꼭지점으로 하여 경계 삼각형(820)이 정의된다. Referring to FIG. 8, FIG. 8 shows a stroke of a symmetrical form as shown in FIGS. 7A and 7B. A boundary triangle 810 is defined with the boundary point VL n and the intermediate points ML n -1 and ML n adjacent thereto as three vertexes. Likewise, the boundary triangle 820 is defined with the boundary point VR n and the intermediate points MR n -1 and MR n adjacent thereto as three vertexes.

경계 삼각형(810)은 좌측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(810)의 꼭지점 MLn -1로부터 경계점 VLn을 향하는 제1 벡터

Figure 112015002873268-pat00010
, 및 MLn -1로부터 경계점이 아닌 다른 꼭지점 MLn을 향하는 제2 벡터
Figure 112015002873268-pat00011
의 벡터 곱
Figure 112015002873268-pat00012
은 z 축 방향(즉, 도면에 수직한 방향)에서 양의 크기를 갖는다. 따라서, 경계 삼각형(810)의 종류는 오목에 해당된다. 한편, 경계 삼각형(820)은 우측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(820)의 꼭지점 MRn -1로부터 경계점 VRn을 향하는 제1 벡터
Figure 112015002873268-pat00013
, 및 MRn -1로부터 경계점이 아닌 다른 꼭지점 MRn을 향하는 제2 벡터
Figure 112015002873268-pat00014
의 벡터 곱
Figure 112015002873268-pat00015
은 z 축 방향에서 양의 크기를 갖는다. 따라서, 경계 삼각형(720)의 종류는 볼록에 해당된다. The boundary triangle 810 is a left boundary triangle, and the first vector from the vertex ML n -1 of the boundary triangle 810 that is not the boundary point to the boundary point VL n
Figure 112015002873268-pat00010
, And ML n -1 to a vertex ML n other than the boundary point,
Figure 112015002873268-pat00011
Vector product of
Figure 112015002873268-pat00012
Has a positive magnitude in the z-axis direction (i.e., the direction perpendicular to the drawing). Therefore, the type of the boundary triangle 810 corresponds to the concave. On the other hand, the boundary triangle 820 is the right boundary triangle, and the first vector from the vertex MR n -1 of the boundary triangle 820 that is not the boundary point to the boundary point VR n
Figure 112015002873268-pat00013
, And a second vector from the MR n -1 to a vertex MR n other than the boundary point
Figure 112015002873268-pat00014
Vector product of
Figure 112015002873268-pat00015
Has a positive magnitude in the z-axis direction. Therefore, the type of boundary triangle 720 corresponds to the convexity.

한편, 내부 삼각형(830, 840, 850)은 도 7a를 참조하여 전술한 것과 동일한 방식으로 생성될 수 있다. Meanwhile, the inner triangles 830, 840, and 850 can be generated in the same manner as described above with reference to FIG. 7A.

이상에서 설명한 것과 같이 생성된 경계 삼각형(810, 820) 및 내부 삼각형(830, 840, 850)으로 이루어진 메쉬를 이미지로 렌더링함으로써, 스트로크를 묘화할 수 있다. 렌더링을 수행함에 있어서, 경계 삼각형(810)은 오목에 해당되므로 경계점(VLn)을 포함하여 경계점(VLn)과 곡선 사이의 영역만을 오목한 형태의 이미지로 전환하며, 경계 삼각형(820)은 볼록에 해당되므로 경계점(VRn)을 마주보는 변과 곡선 사이의 영역만을 볼록한 형태의 이미지로 전환한다. 상기 과정은 도 7a 및 7b를 참조하여 전술한 것으로부터 통상의 기술자에게 용이하게 이해될 수 있으므로, 설명의 중복을 피하기 위하여 자세한 설명을 생략한다.The stroke can be drawn by rendering the mesh composed of the boundary triangles 810 and 820 and the inner triangles 830, 840 and 850 generated as described above as an image. In carrying out the rendering, boundary triangle 810 so that the recess, including the boundary points (VL n), and switching only the area between the boundary point (VL n) and curved in the image of a concave shape, border triangles 820 is convex So that only the area between the sides facing the boundary point VR n and the curve is converted into a convex shape image. The above process can be easily understood by those skilled in the art from the above description with reference to FIGS. 7A and 7B, and thus detailed description will be omitted in order to avoid duplication of description.

도 9를 참조하면, 도 9는 스트로크의 폭이 부분적으로 넓어져 볼록한 경계 삼각형만을 포함하는 스트로크를 도시한다. 경계점 VLn 및 이에 인접한 중간점 MLn -1, MLn을 세 꼭지점으로 하여 경계 삼각형(910)이 정의된다. 마찬가지로, 경계점 VRn 및 이에 인접한 중간점 MRn -1, MRn을 세 꼭지점으로 하여 경계 삼각형(920)이 정의된다. Referring to Fig. 9, Fig. 9 shows a stroke including only a convex boundary triangle with the width of the stroke partially widened. A boundary triangle 910 is defined with the boundary point VL n and the intermediate points ML n -1 and ML n adjacent thereto as three vertexes. Likewise, a boundary triangle 920 is defined with the boundary point VR n and the intermediate points MR n -1 and MR n adjacent thereto as three vertices.

경계 삼각형(910)은 좌측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(910)의 꼭지점 MLn -1로부터 경계점 VLn을 향하는 제1 벡터

Figure 112015002873268-pat00016
, 및 MLn -1로부터 경계점이 아닌 다른 꼭지점 MLn을 향하는 제2 벡터
Figure 112015002873268-pat00017
의 벡터 곱
Figure 112015002873268-pat00018
은 z 축 방향(즉, 도면에 수직한 방향)에서 음의 크기를 갖는다. 따라서, 경계 삼각형(910)의 종류는 볼록에 해당된다. 한편, 경계 삼각형(920)은 우측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(920)의 꼭지점 MRn -1로부터 경계점 VRn을 향하는 제1 벡터
Figure 112015002873268-pat00019
, 및 MRn -1로부터 경계점이 아닌 다른 꼭지점 MRn을 향하는 제2 벡터
Figure 112015002873268-pat00020
의 벡터 곱
Figure 112015002873268-pat00021
은 z 축 방향에서 양의 크기를 갖는다. 따라서, 경계 삼각형(920)의 종류도 볼록에 해당된다. The boundary triangle 910 is a left boundary triangle, and the first vector from the vertex ML n -1 of the boundary triangle 910 that is not the boundary point to the boundary point VL n
Figure 112015002873268-pat00016
, And ML n -1 to a vertex ML n other than the boundary point,
Figure 112015002873268-pat00017
Vector product of
Figure 112015002873268-pat00018
Has a negative magnitude in the z-axis direction (i.e., the direction perpendicular to the drawing). Therefore, the type of boundary triangle 910 corresponds to the convexity. On the other hand, the boundary triangle 920 is a right boundary triangle, and the first vector from the vertex MR n -1 of the boundary triangle 920 that is not the boundary point to the boundary point VR n
Figure 112015002873268-pat00019
, And a second vector from the MR n -1 to a vertex MR n other than the boundary point
Figure 112015002873268-pat00020
Vector product of
Figure 112015002873268-pat00021
Has a positive magnitude in the z-axis direction. Therefore, the type of boundary triangle 920 also corresponds to the convexity.

한편, 중간점 MLn -1, MRn -1 및 MLn을 꼭지점으로 하여 내부 삼각형(930)이 생성되며, 중간점 MRn -1, MLn 및 MRn을 꼭지점으로 하여 또 다른 내부 삼각형(940)이 생성된다.On the other hand, the middle point ML n -1, n -1 MR and ML to a n in the vertex is within the triangle 930 is generated by the midpoint MR n -1, n ML and MR n vertices to another within the triangle ( 940) are generated.

이상에서 설명한 것과 같이 생성된 경계 삼각형(910, 920) 및 내부 삼각형(930, 940)으로 이루어진 메쉬를 이미지로 렌더링함으로써, 스트로크를 묘화할 수 있다. 렌더링을 수행함에 있어서, 경계 삼각형(910, 920)은 모두 볼록에 해당되므로 각각의 경계 삼각형(910, 920)에 포함된 경계점(VLn, VRn)을 마주보는 변과 곡선 사이의 영역만을 볼록한 형태의 이미지로 전환한다. 그 결과, 에지점(Vn) 부근에서 폭이 넓어지는 형태의 스트로크가 자연스러운 곡선 형태로 렌더링될 수 있다. The stroke can be drawn by rendering the mesh composed of the boundary triangles 910 and 920 and the inner triangles 930 and 940 generated as described above as an image. The boundary triangles 910 and 920 correspond to the convex so that only the region between the sides facing the boundary points VL n and VR n included in the boundary triangles 910 and 920 is convex To the image of the form. As a result, a stroke in the form of widening in the vicinity of the edge point V n can be rendered in a natural curve shape.

다음으로 도 10을 참조하면, 도 10는 스트로크의 폭이 부분적으로 좁아져 오목한 경계 삼각형만을 포함하는 스트로크를 도시한다. 경계점 VLn 및 이에 인접한 중간점 MLn -1, MLn을 세 꼭지점으로 하여 경계 삼각형(1010)이 정의된다. 마찬가지로, 경계점 VRn 및 이에 인접한 중간점 MRn -1, MRn을 세 꼭지점으로 하여 경계 삼각형(1020)이 정의된다. Referring now to FIG. 10, FIG. 10 shows a stroke that includes only a concave boundary triangle with the width of the stroke being partially narrowed. A boundary triangle 1010 is defined with the boundary point VL n and the intermediate points ML n -1 and ML n adjacent thereto as three vertexes. Similarly, a boundary triangle 1020 is defined with the boundary point VR n and the intermediate points MR n -1 and MR n adjacent thereto as three vertexes.

경계 삼각형(1010)은 좌측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(1010)의 꼭지점 MLn -1로부터 경계점 VLn을 향하는 제1 벡터

Figure 112015002873268-pat00022
, 및 MLn -1로부터 경계점이 아닌 다른 꼭지점 MLn을 향하는 제2 벡터
Figure 112015002873268-pat00023
의 벡터 곱
Figure 112015002873268-pat00024
은 z 축 방향(즉, 도면에 수직한 방향)에서 양의 크기를 갖는다. 따라서, 경계 삼각형(1010)의 종류는 오목에 해당된다. 한편, 경계 삼각형(1020)은 우측 경계 삼각형이며, 경계점이 아닌 경계 삼각형(1020)의 꼭지점 MRn -1로부터 경계점 VRn을 향하는 제1 벡터
Figure 112015002873268-pat00025
, 및 MRn -1로부터 경계점이 아닌 다른 꼭지점 MRn을 향하는 제2 벡터
Figure 112015002873268-pat00026
의 벡터 곱
Figure 112015002873268-pat00027
은 z 축 방향에서 음의 크기를 갖는다. 따라서, 경계 삼각형(1020)의 종류도 오목에 해당된다. Boundary triangle 1010 is the left border triangles, and the first vector directed toward the border point VL n from the vertex of the boundary ML n -1 triangle 1010, a non-boundary point
Figure 112015002873268-pat00022
, And ML n -1 to a vertex ML n other than the boundary point,
Figure 112015002873268-pat00023
Vector product of
Figure 112015002873268-pat00024
Has a positive magnitude in the z-axis direction (i.e., the direction perpendicular to the drawing). Therefore, the type of the boundary triangle 1010 corresponds to the concave. On the other hand, the boundary triangle 1020 is the right boundary triangle, and a first vector from a vertex MR n -1 of the boundary triangle 1020, a non-boundary pixels toward the border point VR n
Figure 112015002873268-pat00025
, And a second vector from the MR n -1 to a vertex MR n other than the boundary point
Figure 112015002873268-pat00026
Vector product of
Figure 112015002873268-pat00027
Has a negative magnitude in the z-axis direction. Therefore, the type of the boundary triangle 1020 corresponds to the concave.

한편, 중간점 MLn -1, MRn -1 및 경계점 VRn을 꼭지점으로 하여 내부 삼각형(1030)이 생성되며, 중간점 MLn -1 및 경계점 VLn, VRn을 꼭지점으로 하여 내부 삼각형(1040)이 생성된다. 또한, 경계점 VLn, VRn 및 중간점 MLn을 꼭지점으로 하여 내부 삼각형(1050)이 생성되며, 경계점 VRn 및 중간점 MLn, MRn을 꼭지점으로 하여 내부 삼각형(1060)이 생성된다.On the other hand, the middle point ML n -1, n -1 MR and VR border point to the vertex n to be within the triangle 1030 is created, the intermediate point and the boundary points ML n -1 n VL, n VR inside the triangle to the apex ( 1040) is generated. Further, an inner triangle 1050 is generated with vertexes of the boundary points VL n , VR n and the middle point ML n , and the boundary points VR n And the middle point ML n and MR n as vertexes, the inner triangle 1060 is generated.

이상에서 설명한 것과 같이 생성된 경계 삼각형(1010, 1020) 및 내부 삼각형(1030, 1040, 1050, 1060)으로 이루어진 메쉬를 이미지로 렌더링함으로써, 스트로크를 묘화할 수 있다. 렌더링을 수행함에 있어서, 경계 삼각형(1010, 1020)은 모두 오목에 해당되므로 각각에 포함된 경계점(VLn, VRn)을 포함하여 경계점(VLn, VRn)과 곡선 사이의 영역만을 오목한 형태의 이미지로 전환한다. 그 결과, 에지점(Vn) 부근에서 폭이 좁아지는 형태의 스트로크가 자연스러운 곡선 형태로 렌더링될 수 있다. The stroke can be drawn by rendering the mesh composed of the boundary triangles 1010 and 1020 and the inner triangles 1030, 1040, 1050, and 1060 generated as described above as an image. In carrying out the rendering, border triangles only the concave region between the (1010, 1020) is because both of the concave boundary points including the feature points (VL n, VR n) included in each of (VL n, VR n) and curve . As a result, a stroke in the form of a narrowing width in the vicinity of the edge point V n can be rendered in a natural curve shape.

도 11은 에지점, 경계점 및 중간점으로부터 접힌(folded) 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 이미지이다.11 is an image showing creating an inner triangle and a boundary triangle corresponding to the folded strokes from the edge point, the boundary point and the midpoint.

도 11을 참조하면, 에지점 Vn -1로부터 Vn까지의 경로에 대하여, 에지점 Vn으로부터 Vn+1까지의 경로가 절곡되어 있다. 스트로크는 경로로부터 소정의 폭 내에 위치한 픽셀들을 채우므로, 경로가 절곡된 각도(θ)가 90도 미만일 경우 절곡 부위를 중심으로 스트로크가 접혀 중첩된 영역이 발생된다. 이러한 접힌 스트로크에서는, 절곡 부위에 해당되는 에지점 Vn이 경계점과 함께 스트로크의 외곽에 위치하며, 해당 에지점 및 경계점을 이용하여 경계 삼각형이 정의된다. Referring to Fig. 11, the path from the edge point V n to V n + 1 is bent with respect to the path from the edge point V n -1 to V n . Since the stroke fills the pixels located within a predetermined width from the path, when the angle? Of the path is less than 90 degrees, a stroke is folded and overlapped around the bent portion. In such a folded stroke, an edge point V n corresponding to the bent portion is located at the outer edge of the stroke together with the boundary point, and a boundary triangle is defined using the edge point and the boundary point.

즉, 경계점 VLn , 및 이에 인접한 중간점 MLn -1과 에지점 Vn을 세 꼭지점으로 하여 경계 삼각형(1110)이 정의된다. 또한, 경계점 VRn, 및 이에 인접한 에지점 Vn과 중간점 MLn을 세 꼭지점으로 하여 경계 삼각형(1120)이 정의된다. 스트로크가 접힌 경우, 즉, 에지점 Vn-1로부터 Vn까지의 경로에 대하여, 에지점 Vn으로부터 Vn +1까지의 경로가 이루는 각도가 90도 미만일 경우 절곡 부위에 해당하는 에지점 Vn을 포함하는 경계 삼각형은 모두 볼록에 해당된다. 즉, 경계 삼각형(1110) 및 경계 삼각형(1120)은 볼록 경계 삼각형이다.In other words, the boundary triangle 1110 is defined by the boundary n VL, and thus adjacent the midpoint ML n -1 and the edge points V n with three vertices. In addition, a boundary triangle 1120 is defined with the boundary point VR n and the edge point V n and the intermediate point ML n adjacent thereto as three vertexes. When the stroke is folded, that is, when the angle formed by the path from the edge point V n to V n +1 to the edge point V n-1 to V n is less than 90 degrees, the edge point V The boundary triangles including n are all convex. That is, the boundary triangle 1110 and the boundary triangle 1120 are convex boundary triangles.

한편, 내부 삼각형은 중간점 및 에지점을 이용하여 정의된다. 이때, 스트로크가 접혀 있으므로 절곡점 후에 위치하는 중간점 MRn은 다른 중간점 및/또는 에지점들을 이용하여 생성되는 삼각형의 내부에 존재할 가능성이 있다. 일 실시예에서, 중간점이 다른 중간점 및/또는 에지점을 연결한 삼각형 내부에 존재하는지 여부는, 경로의 절곡 방향과 상이한 방향에 위치한 하나의 중간점으로부터 바라본, 경로의 절곡 방향에 위치한 순차적인 중간점들의 상대적인 위치를 이용하여 판정될 수 있다. 이상의 판정은 내부 삼각형 생성부(41)에 의하여 수행되며, 보다 구체적으로 설명하면 아래와 같다. On the other hand, the inner triangle is defined using the midpoint and the edge point. At this time, since the stroke is folded, an intermediate point MR n located after the bending point may exist inside the triangle generated by using other intermediate points and / or edge points. In one embodiment, whether or not the intermediate point is present inside a triangle connecting other midpoints and / or edge points is determined by determining whether the intermediate point is within a triangle connected to another intermediate point and / Can be determined using the relative positions of the intermediate points. The above determination is performed by the internal triangle generation unit 41, and more specifically, as described below.

도 11에서 경로는 스트로크의 진행 방향에 대해 우측으로 절곡되었다. 이때, 절곡 방향이 아닌 경로 좌측에 위치하면서 절곡점인 에지점 Vn 후에 위치하는 최초의 중간점 MLn으로부터, 절곡 방향인 경로 우측에 위치하면서 절곡점 전에 위치하는 마지막 중간점 MRn-1을 연결한 선분을 정의한다. 이때, 절곡 방향인 경로 우측에 위치하면서 절곡점 후에 위치하는 최초의 중간점 MRn과 전술한 선분의 상대적인 위치를 통해, 절곡 후 중간점이 다른 중간점 및/또는 에지점을 연결하여 생성되는 삼각형의 내부에 존재하는지 여부를 판정할 수 있다. MLn 및 MRn -1을 연결한 선분과 직교하는 방향을 축으로 하고 상기 축상에서 경로에 인접한 방향이 양의 방향이라고 가정하면, MLn 및 MRn -1을 연결한 선분으로부터 MRn까지의 최단 거리(D)가 양의 값을 갖는 것을 통하여 MRn이 다른 점들을 연결하는 삼각형의 내부에 위치하는 것을 알 수 있다. In Fig. 11, the path was bent to the right with respect to the advancing direction of the stroke. At this time, the last intermediate point MR n-1 located at the right of the path in the bending direction and located before the bending point from the first intermediate point ML n located after the edge point V n located at the left side of the path, Define connected line segments. At this time, a triangle formed by connecting intermediate points and / or edge points having different intermediate points after the bending, through the relative positions of the first intermediate point MR n located at the right side of the bending direction and located after the bending point and the above- It is possible to judge whether or not it exists inside. ML n And MR n -1 is an axis perpendicular to the line segment, and the direction adjacent to the path on the axis is a positive direction, ML n And the shortest distance D from the line segment connecting MR n -1 to MR n has a positive value, it can be seen that MR n is located inside the triangle connecting the other points.

MRn이 다른 점들을 연결하는 삼각형의 내부에 위치하는 것으로 결정되면, 내부 삼각형 생성부(41)는 MRn을 제외한 다른 중간점들을 이용하여 내부 삼각형을 생성한다. 즉, 중간점 MLn -1, MRn -1 및 에지점 Vn을 꼭지점으로 하여 내부 삼각형(1130)이 생성되며, 중간점 MRn -1, MLn 및 에지점 Vn을 꼭지점으로 하여 내부 삼각형(1140)이 생성된다. 내부 삼각형 및 경계 삼각형을 이용한 메쉬 생성 및 렌더링 과정은 전술한 실시예들의 대응되는 과정과 동일하므로 자세한 설명을 생략한다.If it is determined that MR n is located inside the triangle connecting the other points, the inner triangle generation unit 41 generates an inner triangle using other midpoints except MR n . That is, the middle point ML n -1, n -1 and MR edge to the point V n to the vertex is within the triangle 1130 is produced, the middle point MR n -1, to the ML n and V n edge points as vertices inside A triangle 1140 is generated. The mesh generation and rendering process using the inner triangle and the boundary triangle are the same as the corresponding processes of the above-described embodiments, and thus a detailed description thereof will be omitted.

도 12는 에지점, 경계점 및 중간점으로부터 접힌 스트로크에 대응되는 내부 삼각형 및 경계 삼각형을 생성하는 것을 나타내는 또 다른 이미지이다.12 is another image showing creating an inner triangle and a boundary triangle corresponding to the folded strokes from the edge point, the boundary point and the midpoint.

도 12는 도 11에 도시된 예와 비교하여 스트로크의 진행 속도에 차이가 있다. 즉, 도 11에 도시된 예에서 마지막 우측 경계점 MRn은 다른 점들이 생성하는 삼각형 내부에 존재하였으나, 도 12의 예에서 스트로크가 더 빠른 속도로 진행되어 마지막 우측 경계점 MRn은 다른 점들이 생성하는 삼각형의 외부에 존재한다. 이 점은, 도 11을 참조하여 전술한 것과 마찬가지로, MLn 및 MRn -1을 연결한 선분으로부터 MRn까지의 최단 거리의 부호를 이용하여 판정될 수 있다. MLn 및 MRn -1을 연결한 선분과 직교하는 방향을 축으로 하고 상기 축상에서 경로에 인접한 방향이 양의 방향이라고 가정하면, MLn 및 MRn -1을 연결한 선분으로부터 MRn까지의 최단 거리(D)는 음의 값을 갖는다. 따라서, 이를 통하여 MRn이 다른 점들을 연결하는 삼각형의 내부에 위치하지 않는 것을 알 수 있다. 12 differs from the example shown in Fig. 11 in the stroke progress speed. That is, in the example shown in FIG. 11, the last right boundary point MR n exists inside the triangle generated by the other points. However, in the example of FIG. 12, the stroke progresses at a higher speed and the last right boundary point MR n is generated by the other points It exists outside the triangle. This point is, similarly to that described above with reference to Figure 11, ML n And the code of the shortest distance from the line segment connecting MR n -1 to MR n . ML n And MR n -1 is an axis perpendicular to the line segment, and the direction adjacent to the path on the axis is a positive direction, ML n And the shortest distance (D) from the line segment connecting MR n -1 to MR n is negative. Thus, it can be seen that MR n is not located inside the triangle connecting the other points.

MRn이 다른 점들을 연결하는 삼각형의 외부에 위치하는 것으로 결정되면, 내부 삼각형 생성부(41)는 다른 중간점과 함께 MRn도 꼭지점으로 이용하여 내부 삼각형을 생성한다. 즉, 중간점 MLn -1, MRn -1 및 에지점 Vn을 꼭지점으로 하여 내부 삼각형(1230)이 생성되며, 중간점 MRn -1, MLn 및 에지점 Vn을 꼭지점으로 하여 내부 삼각형(1240)이 생성되고, 중간점 MRn -1, MLn 및 MRn을 꼭지점으로 하여 내부 삼각형(1250)이 생성된다. If it is determined that MR n is located outside the triangle connecting the other points, the inner triangle generation unit 41 generates an inner triangle using MR n as a vertex together with other intermediate points. That is, the middle point ML n -1, n -1 and MR edge to the point V n to the vertex is within the triangle 1230 is produced, the middle point MR n -1, to the ML n and V n edge points as vertices inside A triangle 1240 is generated, and the midpoints MR n -1 , ML n And MR n as the vertexes, the inner triangle 1250 is generated.

한편, 도 11을 참조하여 전술한 것과 동일한 방식으로 경계점 VLn, 중간점 MLn-1 및 에지점 Vn을 꼭지점으로 하는 경계 삼각형(1210) 및, 경계점 VRn, 에지점 Vn 및 중간점 MLn을 꼭지점으로 하는 경계 삼각형(1220)이 정의된다. 두 경계 삼각형(1210, 1220)의 종류는 모두 볼록에 해당된다. 이상과 같이 생성된 경계 삼각형(1210, 1220) 및 내부 삼각형(1230, 1240, 1250)을 이용하여, 전술한 실시예들의 대응되는 과정과 동일한 방식으로 메쉬 생성 및 렌더링 과정이 수행될 수 있다. On the other hand, with reference to FIG. 11, one that boundary point VL n, in the same way the middle above points ML n-1 and the edge points boundary to the V n in the vertex triangle 1210, and, the boundary points VR n, the edge points V n, and the intermediate point A boundary triangle 1220 having vertex ML n is defined. The types of the two boundary triangles 1210 and 1220 are all convex. Using the boundary triangles 1210 and 1220 and the inner triangles 1230, 1240 and 1250 generated as described above, the mesh generation and rendering process can be performed in the same manner as the corresponding processes of the above-described embodiments.

이상에서 설명한 실시예들에 따른 스트로크 기반의 이미지 렌더링 장치 및 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되어, 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(carrier wave)(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.The operations according to the stroke-based image rendering apparatus and method according to the embodiments described above can be implemented, at least partially, in a computer program and recorded in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and a carrier wave (for example, And the like. The computer readable recording medium may also be distributed over a networked computer system so that computer readable code is stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment may be easily understood by those skilled in the art to which this embodiment belongs.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.While the invention has been shown and described with reference to certain embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. However, it should be understood that such modifications are within the technical scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

Claims (13)

사용자 입력에 의하여 정의되는 경로 데이터 및 스트로크의 폭을 포함하는 스트로크 데이터를 수신하도록 구성되며, 상기 스트로크의 폭은 상기 경로 데이터를 정의하는 사용자 입력에 기초하여 일정 간격마다 결정되는, 입력부;
상기 스트로크 데이터로부터 복수의 에지점을 생성하도록 구성된 에지점 생성부;
상기 복수의 에지점으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 상기 스트로크의 폭을 이용하여 복수의 경계점을 생성하도록 구성된 경계점 생성부;
각 에지점, 각 경계점 및 경계점들 사이의 중간점을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형 및 하나 이상의 경계 삼각형을 포함하는 메쉬를 생성하도록 구성된 메쉬 생성부; 및
상기 메쉬를 이미지로 렌더링하도록 구성된 렌더링부를 포함하되,
상기 메쉬 생성부는,
각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 경계점을 포함하며 스트로크의 경로와 만나지 않는 상기 경계 삼각형을 생성하고, 경계점을 제외한 상기 경계 삼각형의 하나의 꼭지점으로부터 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 상기 경계 삼각형의 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱에 기초하여 상기 경계 삼각형의 종류를 오목 또는 볼록으로 결정하도록 구성된 경계 삼각형 생성부를 포함하는, 스트로크 기반의 이미지 렌더링 장치.
Wherein the stroke data is configured to receive stroke data including path data and a stroke width defined by a user input, the width of the stroke being determined at regular intervals based on a user input defining the path data;
An edge point generating unit configured to generate a plurality of edge points from the stroke data;
A boundary point generation unit configured to generate a plurality of boundary points from the plurality of edge points using a normal line corresponding to each of the plurality of edge points and a width of the stroke;
A mesh generation unit configured to generate a mesh including at least one inner triangle and at least one boundary triangle corresponding to a stroke using an intermediate point between each edge point, each boundary point, and boundary points; And
And a rendering unit configured to render the mesh as an image,
Wherein the mesh generation unit comprises:
The boundary triangle including the boundary points and not meeting the paths of the strokes is generated by connecting at least one of the edge points, the respective boundary points, and the respective intermediate points, And a boundary triangle generation unit configured to determine the type of the boundary triangle as a concave or a convex based on a vector product between a vector and a second vector directed to another vertex of the boundary triangle excluding the boundary point from the one vertex. Based image rendering device.
삭제delete 제 1항에 있어서,
상기 경계점 생성부는,
상기 복수의 에지점 각각에 대하여, 에지점에 대응되는 법선상에서 에지점의 양 측면에 각각 위치하는 한 쌍의 경계점을 생성하도록 구성된, 스트로크 기반의 이미지 렌더링 장치.
The method according to claim 1,
The boundary-
And to generate, for each of the plurality of edge points, a pair of boundary points respectively located on both sides of the edge point on a normal corresponding to the edge point.
제 3항에 있어서,
상기 복수의 에지점은 경로의 진행 방향을 따라 순차적으로 위치하는 제1 에지점 및 제2 에지점을 포함하며,
상기 경계점 생성부는, 상기 제1 에지점에 대응되는 제1 법선 및 상기 제2 에지점에 대응되는 제2 법선이 서로 교차할 경우, 상기 제2 에지점에 대응되는 경계점 중 하나를 상기 제1 법선과 상기 제2 법선의 교차점에 위치시키도록 구성된, 스트로크 기반의 이미지 렌더링 장치.
The method of claim 3,
The plurality of edge points including a first edge point and a second edge point sequentially located along a traveling direction of the path,
Wherein the boundary point generation unit generates one of boundary points corresponding to the second edge point when the first normal line corresponding to the first edge point and the second normal line corresponding to the second edge point intersect with each other, And at the intersection of the first normal and the second normal.
제 1항에 있어서,
상기 메쉬 생성부는,
각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 하나 이상의 중간점을 포함하며 스트로크의 경로와 만나는 상기 내부 삼각형을 생성하도록 구성된 내부 삼각형 생성부를 더 포함하는, 스트로크 기반의 이미지 렌더링 장치.
The method according to claim 1,
Wherein the mesh generation unit comprises:
Further comprising an internal triangle generation unit configured to concatenate at least one of each edge point, each boundary point, and each intermediate point to generate the internal triangle including at least one midpoint and meeting the path of the stroke, .
제 1항에 있어서,
상기 렌더링부는, 상기 경계 삼각형의 종류에 기초하여 상기 경계 삼각형 내부의 일부 영역을 곡선 형태로 렌더링하도록 구성된, 스트로크 기반의 이미지 렌더링 장치.
The method according to claim 1,
Wherein the rendering unit is configured to render a portion of the boundary triangle in a curved shape based on the type of the boundary triangle.
사용자 입력에 의하여 정의되는 경로 데이터 및 스트로크의 폭을 포함하는 스트로크 데이터를 수신하는 단계로서, 상기 스트로크의 폭은 상기 경로 데이터를 정의하는 사용자 입력에 기초하여 일정 간격마다 결정되는, 상기 스트로크 데이터를 수신하는 단계;
상기 스트로크 데이터로부터 복수의 에지점을 생성하는 단계
상기 복수의 에지점으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 상기 스트로크의 폭을 이용하여 복수의 경계점을 생성하는 단계;
각 에지점, 각 경계점 및 경계점들 사이의 중간점을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형 및 하나 이상의 경계 삼각형을 포함하는 메쉬를 생성하는 단계; 및
상기 메쉬를 이미지로 렌더링하는 단계를 포함하되,
상기 메쉬를 생성하는 단계는,
각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 경계점을 포함하며 스트로크의 경로와 만나지 않는 상기 경계 삼각형을 생성하는 단계; 및
경계점을 제외한 상기 경계 삼각형의 하나의 꼭지점으로부터 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 상기 경계 삼각형의 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱에 기초하여 상기 경계 삼각형의 종류를 오목 또는 볼록으로 결정하는 단계를 포함하는, 스트로크 기반의 이미지 렌더링 방법.
The method comprising the steps of: receiving stroke data including path data and stroke width defined by user input, the stroke width being determined at regular intervals based on user input defining the path data; ;
Generating a plurality of edge points from the stroke data
Generating a plurality of boundary points from the plurality of edge points by using a normal line corresponding to each of the plurality of edge points and a width of the stroke;
Generating a mesh including at least one inner triangle and at least one boundary triangle corresponding to the stroke using the midpoint between each edge point, each boundary point and the boundary points; And
Rendering the mesh as an image,
Wherein the generating the mesh comprises:
Connecting the at least one of each edge point, each boundary point, and each intermediate point to generate the boundary triangle including the boundary point and not meeting the path of the stroke; And
Based on a vector product between a first vector from a vertex of one of the boundary triangles excluding a boundary point to a boundary point and a second vector from the one vertex to another vertex of the boundary triangle excluding the boundary point, And determining a concave or convex shape of the stroke-based image.
삭제delete 제 7항에 있어서,
상기 복수의 경계점을 생성하는 단계는,
상기 복수의 에지점 각각에 대하여, 에지점에 대응되는 법선상에서 에지점의 양 측면에 각각 위치하는 한 쌍의 경계점을 생성하는 단계를 포함하는, 스트로크 기반의 이미지 렌더링 방법.
8. The method of claim 7,
Wherein the generating of the plurality of boundary points comprises:
And for each of the plurality of edge points, generating a pair of boundary points respectively located on both sides of the edge point on a normal corresponding to the edge point.
제 9항에 있어서,
상기 복수의 에지점은 경로의 진행 방향을 따라 순차적으로 위치하는 제1 에지점 및 제2 에지점을 포함하며,
상기 한 쌍의 경계점을 생성하는 단계는, 상기 제1 에지점에 대응되는 제1 법선 및 상기 제2 에지점에 대응되는 제2 법선이 서로 교차할 경우, 상기 제2 에지점에 대응되는 경계점 중 하나를 상기 제1 법선과 상기 제2 법선의 교차점에 생성하는 단계를 포함하는, 스트로크 기반의 이미지 렌더링 방법.
10. The method of claim 9,
The plurality of edge points including a first edge point and a second edge point sequentially located along a traveling direction of the path,
Wherein the step of generating the pair of boundary points comprises the steps of: when a first normal line corresponding to the first edge point and a second normal line corresponding to the second edge point intersect with each other, And creating one at the intersection of the first normal and the second normal.
제 7항에 있어서,
상기 메쉬를 생성하는 단계는,
각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 하나 이상의 중간점을 포함하며 스트로크의 경로와 만나는 상기 내부 삼각형을 생성하는 단계를 더 포함하는, 스트로크 기반의 이미지 렌더링 방법.
8. The method of claim 7,
Wherein the generating the mesh comprises:
Further comprising connecting the at least one of the respective edge points, each of the boundary points, and each of the intermediate points to create the internal triangle that includes at least one midpoint and meets the path of the stroke.
제 7항에 있어서,
상기 메쉬를 이미지로 렌더링하는 단계는, 상기 경계 삼각형의 종류에 기초하여 상기 경계 삼각형 내부의 일부 영역을 곡선 형태로 렌더링하는 단계를 포함하는, 스트로크 기반의 이미지 렌더링 방법.
8. The method of claim 7,
Wherein rendering the mesh as an image comprises rendering a region of the interior of the bounding triangle in a curve shape based on the type of the boundary triangle.
하드웨어와 결합되어 스트로크 기반의 이미지 렌더링 방법을 실행하도록 매체에 저장된 컴퓨터 프로그램으로서,
상기 스트로크 기반의 이미지 렌더링 방법은,
사용자 입력에 의하여 정의되는 경로 데이터 및 스트로크의 폭을 포함하는 스트로크 데이터를 수신하는 단계로서, 상기 스트로크의 폭은 상기 경로 데이터를 정의하는 사용자 입력에 기초하여 일정 간격마다 결정되는, 상기 스트로크 데이터를 수신하는 단계;
상기 스트로크 데이터로부터 복수의 에지점을 생성하는 단계
상기 복수의 에지점으로부터, 상기 복수의 에지점 각각에 대응되는 법선 및 상기 스트로크의 폭을 이용하여 복수의 경계점을 생성하는 단계;
각 에지점, 각 경계점 및 경계점들 사이의 중간점을 이용하여, 스트로크에 대응되는 하나 이상의 내부 삼각형 및 하나 이상의 경계 삼각형을 포함하는 메쉬를 생성하는 단계; 및
상기 메쉬를 이미지로 렌더링하는 단계를 포함하되,
상기 메쉬를 생성하는 단계는,
각 에지점, 각 경계점 및 각 중간점 중 하나 이상을 연결함으로써, 경계점을 포함하며 스트로크의 경로와 만나지 않는 상기 경계 삼각형을 생성하는 단계; 및
경계점을 제외한 상기 경계 삼각형의 하나의 꼭지점으로부터 경계점을 향하는 제1 벡터, 및 상기 하나의 꼭지점으로부터 경계점을 제외한 상기 경계 삼각형의 다른 꼭지점을 향하는 제2 벡터 사이의 벡터 곱에 기초하여 상기 경계 삼각형의 종류를 오목 또는 볼록으로 결정하는 단계를 포함하는,
컴퓨터 프로그램.
A computer program stored on a medium coupled to hardware for executing a stroke-based image rendering method,
The stroke-based image rendering method includes:
The method comprising the steps of: receiving stroke data including path data and stroke width defined by user input, the stroke width being determined at regular intervals based on user input defining the path data; ;
Generating a plurality of edge points from the stroke data
Generating a plurality of boundary points from the plurality of edge points by using a normal line corresponding to each of the plurality of edge points and a width of the stroke;
Generating a mesh including at least one inner triangle and at least one boundary triangle corresponding to the stroke using the midpoint between each edge point, each boundary point and the boundary points; And
Rendering the mesh as an image,
Wherein the generating the mesh comprises:
Connecting the at least one of each edge point, each boundary point, and each intermediate point to generate the boundary triangle including the boundary point and not meeting the path of the stroke; And
Based on a vector product between a first vector from a vertex of one of the boundary triangles excluding a boundary point to a boundary point and a second vector from the one vertex to another vertex of the boundary triangle excluding the boundary point, Wherein the step of determining the concavity or convexity comprises:
Computer program.
KR1020150004185A 2015-01-12 2015-01-12 Apparatus, method and computer program for rendering image based on stroke KR101654865B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150004185A KR101654865B1 (en) 2015-01-12 2015-01-12 Apparatus, method and computer program for rendering image based on stroke

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150004185A KR101654865B1 (en) 2015-01-12 2015-01-12 Apparatus, method and computer program for rendering image based on stroke

Publications (2)

Publication Number Publication Date
KR20160086622A KR20160086622A (en) 2016-07-20
KR101654865B1 true KR101654865B1 (en) 2016-09-06

Family

ID=56679989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150004185A KR101654865B1 (en) 2015-01-12 2015-01-12 Apparatus, method and computer program for rendering image based on stroke

Country Status (1)

Country Link
KR (1) KR101654865B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070555A (en) * 2018-10-19 2019-07-30 北京微播视界科技有限公司 Image processing method, device, hardware device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092480A (en) 2008-10-06 2010-04-22 Arm Ltd Graphics processing system
JP2010092481A (en) * 2008-10-06 2010-04-22 Arm Ltd Graphics processing system
JP2011028756A (en) 2009-07-28 2011-02-10 Arm Ltd Graphics processing system
JP2011221980A (en) 2010-04-09 2011-11-04 Fuji Xerox Co Ltd System and program for creating virtual model, and system for creating interactive virtual content

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006291877A (en) 2005-04-12 2006-10-26 Toyota Motor Corp Control device for internal combustion engine
KR101338370B1 (en) 2012-04-27 2013-12-10 주식회사 컴퍼니원헌드레드 Batch rendering method using graphic processing unit of two dimension vector graphics

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092480A (en) 2008-10-06 2010-04-22 Arm Ltd Graphics processing system
JP2010092481A (en) * 2008-10-06 2010-04-22 Arm Ltd Graphics processing system
JP2011028756A (en) 2009-07-28 2011-02-10 Arm Ltd Graphics processing system
JP2011221980A (en) 2010-04-09 2011-11-04 Fuji Xerox Co Ltd System and program for creating virtual model, and system for creating interactive virtual content

Also Published As

Publication number Publication date
KR20160086622A (en) 2016-07-20

Similar Documents

Publication Publication Date Title
JP4157569B2 (en) Drawing apparatus, drawing method, and drawing program
KR100834596B1 (en) Image processing apparatus, image processing method, and computer readable recording medium having image processing program
US8773439B2 (en) Approximation of stroked higher-order curved segments by quadratic bèzier curve segments
US8072452B1 (en) Efficient multi-resolution curve rendering
EP3070677B1 (en) Method and apparatus for tile-based rendering
US9959669B2 (en) Method and apparatus for rendering a computer generated image
EP2107528A1 (en) Method of and arrangement for rendering a path
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
EP3142074B1 (en) Method and apparatus for performing path stroking
EP2985735B1 (en) Method and apparatus for performing tile-based path rendering
US7952580B1 (en) Classification of exterior and interior triangles for artwork rendering
US9202148B2 (en) Image processing apparatus and method for generating stencil data of a stroke based on shape information, connection-point information, and end-point information
JP2009301284A (en) Drawing device and method
KR101517465B1 (en) 3 asterization Engine and three-dimension graphics system for rasterizing by order adapted characteristic of polygon
KR101654865B1 (en) Apparatus, method and computer program for rendering image based on stroke
KR101646945B1 (en) Apparatus, method and computer program for generating mesh for vector graphics based on graphic processing unit
KR102316438B1 (en) Method for processing 3-d data
US10275925B2 (en) Blend shape system with texture coordinate blending
KR101667643B1 (en) Apparatus, method and computer program for rendering image for vector graphics based on graphic processing unit
JP2011165062A (en) Drawing processing apparatus, drawing processing method, and program
US11217005B1 (en) Techniques for rendering 2D vector graphics on mobile devices
KR102585220B1 (en) Method and apparatus for performing tile-based rendering
US20160328867A1 (en) Method and apparatus for performing curve rendering
Nakamura et al. Rendering of vector objects on curved surface using pivot triangle primitives
JP2010256986A (en) Drawing device and method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190902

Year of fee payment: 4