KR20160068204A - Data processing method for mesh geometry and computer readable storage medium of recording the same - Google Patents

Data processing method for mesh geometry and computer readable storage medium of recording the same Download PDF

Info

Publication number
KR20160068204A
KR20160068204A KR1020140173595A KR20140173595A KR20160068204A KR 20160068204 A KR20160068204 A KR 20160068204A KR 1020140173595 A KR1020140173595 A KR 1020140173595A KR 20140173595 A KR20140173595 A KR 20140173595A KR 20160068204 A KR20160068204 A KR 20160068204A
Authority
KR
South Korea
Prior art keywords
vertex
render target
texture
pixel
shader
Prior art date
Application number
KR1020140173595A
Other languages
Korean (ko)
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 KR1020140173595A priority Critical patent/KR20160068204A/en
Publication of KR20160068204A publication Critical patent/KR20160068204A/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/005General purpose rendering architectures

Abstract

According to an embodiment of the present invention, a data processing method for a mesh geometry comprises: a first step of generating first and second render target textures and first and second vertex lists; a second step of rendering original mesh geometry; a third step of setting the first render target texture as the current render target, and setting the second render target texture as the current render target to be sampled; a fourth step of performing rendering using the first vertex, a first pixel shader, and the first vertex list, a fifth step of restoring a default render target, and setting the first render target texture as the current texture; and a sixth step of performing rendering using the second vertex, a second pixel shader, and the second vertex list. Thus, information on the selection and selection cancellation of a triangle or a polygon for a mesh geometry can be provided in real time.

Description

메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체 {DATA PROCESSING METHOD FOR MESH GEOMETRY AND COMPUTER READABLE STORAGE MEDIUM OF RECORDING THE SAME}Technical Field [0001] The present invention relates to a data processing method for a mesh geometry and a computer readable storage medium storing the same. More particularly,

본 출원은 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체에 관한 것이다.The present application relates to a data processing method for a mesh geometry and a computer-readable storage medium storing the method.

스테레오리소그래피(Stereo Lithography; STL) 파일은 메시(예를 들어, 2차원 또는 3차원 객체)를 나타내기 위한 삼각형의 집합으로 구성되며, 예를 들어, CAM(Computer Aided Manufacturing)과 같은 멀티미디어 및 그래픽 애플리케이션에서 2차원 또는 3차원 모델링을 위해 사용된다. 몇몇 애플리케이션은 CAM 데이터를 나타내기 위한 선(line)들을 사용하는데, 이러한 경우에도 이러한 선들은 몇몇 테셀레이션 알고리즘(tessellation algorithm)을 이용하여 삼각형의 세트로 테셀레이트 (삼각화)될 수 있다.Stereo Lithography (STL) files consist of a set of triangles to represent a mesh (e.g., a two-dimensional or a three-dimensional object), for example multimedia and graphics applications such as CAM Dimensional or three-dimensional modeling. Some applications use lines to represent CAM data, in which case these lines may also be tessellated (triangulated) into sets of triangles using some tessellation algorithms.

메시에서 삼각형의 집합은 메시의 서브 객체 또는 일부를 나타내기 위해 사용될 수 있으며, 메시 내에서 이러한 삼각형들의 집합 각각은 다각형이라 명명할 수 있다. 삼각형들을 다각형으로 그룹핑하는 것은, 연결된 삼각형들의 세트를 다각형으로 고려하거나, 연결되지 않은 삼각형들의 세트 역시 다각형으로 고려되는 몇몇 다른 커스터마이즈된(customized) 알고리즘을 사용함으로써 메시 지오메트리를 생성하면서 지오메트리 설계자에 의해 수행되어야 한다. The set of triangles in the mesh can be used to represent sub-objects or parts of the mesh, and each of these sets of triangles in the mesh can be named polygons. Grouping triangles into polygons is done by the geometry designer, creating a mesh geometry by considering a set of connected triangles as polygons, or by using some other customized algorithm that considers the set of unconnected triangles as polygons. .

사용자는 삼각형 형태의 메시 지오메트리를 보면서, 마우스 드래그를 이용하여 XY축을 따라 정렬된 2차원 직사각형을 정의함으로써 복수의 2차원 또는 3차원 삼각형 또는 다각형을 선택(하이라이트)할 필요가 있다. 또한, 선택된 삼각형 또는 다각형의 정보는 가능한 빨리 사용자에게 제공되어서 사용자가 쉽게 메시 지오메트리와 상호작용할 수 있도록 하는 것이 바람직하다. 더 나아가, 사용자가 간단히 마우스로 특정 포인트에서 클릭하면, 해당 포인트가 삼각형 또는 다각형 선택을 수행하기 위한 2차원 직사각형으로 고려될 필요가 있다.The user needs to select (highlight) a plurality of two- or three-dimensional triangles or polygons by defining a two-dimensional rectangle aligned along the XY axis using a mouse drag while viewing the mesh geometry of the triangular shape. In addition, the information of the selected triangle or polygon is preferably provided to the user as soon as possible so that the user can easily interact with the mesh geometry. Furthermore, if the user simply clicks at a particular point with the mouse, the point needs to be considered a two-dimensional rectangle for performing triangular or polygonal selection.

예를 들어, 다음과 같은 경우에 있어서, 선택된 다각형 또는 삼각형에 하이라이트를 주고 선택에 대한 정보를 제공하는 것이 필요하다.For example, in the following cases, it is necessary to give a highlight to the selected polygon or triangle and provide information about the selection.

1) 메시 지오메트리의 삼각화의 정확함을 자세히 검증.1) Verifying the accuracy of triangulation of mesh geometry in detail.

2) 기존의 지오메트리로부터 선택된 삼각형 또는 다각형을 삭제.2) Delete selected triangles or polygons from existing geometry.

3) 선택된 삼각형 또는 다각형을 별도의 메시 파일로 저장.3) Save the selected triangle or polygon as a separate mesh file.

4) 선택된 삼각형 또는 다각형을 이용하여 기존의 메시 형상을 재설계.
4) Redesign the existing mesh shape using the selected triangle or polygon.

이와 관련하여, 하기 선행기술문헌에 기재된 특허문헌 1은, 렌더링 데이터 처리 장치 및 방법을 개시하고 있다.In this connection, Patent Document 1 described in the following prior art documents discloses a rendering data processing apparatus and method.

공개특허공보 제2014-0005388호 (공개일: 2014.01.15.)Patent Publication No. 2014-0005388 (published on January 15, 2014).

당해 기술분야에서는 메시 지오메트리를 위한 삼각형 또는 다각형의 선택 및 선택 해제에 대한 정보를 실시간으로 제공하기 위한 방안이 요구되고 있다.There is a need in the art for providing information in real time about selection and deselection of triangles or polygons for mesh geometry.

상기 과제를 해결하기 위해서, 본 발명의 일 실시예는 메시 지오메트리를 위한 데이터 처리 방법을 제공한다.In order to solve the above problems, an embodiment of the present invention provides a data processing method for a mesh geometry.

본 발명의 일 실시예에 따른 메시 지오메트리를 위한 데이터 처리 방법은, 제 1 및 제 2 렌더 타겟 텍스쳐(render target texture)와 제 1 및 제2 버텍스 리스트를 생성하는 제 1 단계와, 원본 메시 지오메트리를 렌더링하는 제 2 단계와, 제 1 렌더 타겟 텍스쳐를 현재 렌더 타겟으로 설정하고, 제 2 렌더 타겟 텍스쳐를 샘플링되어야 할 현재 텍스쳐로 설정하는 제 3 단계와, 제 1 버텍스 및 제 1 픽셀 셰이더(first vertex and first pixel shader)와 제 1 버텍스 리스트를 이용하여 렌더링하는 제 4 단계와, 디폴트 렌더 타겟을 복원한 후, 제 1 렌더 타겟 텍스쳐를 현재 텍스쳐로 설정하는 제 5 단계와, 제 2 버텍스 및 제 2 픽셀 셰이더(second vertex and second pixel shader)와 제 2 버텍스 리스트를 이용하여 렌더링하는 제 6 단계를 포함할 수 있다.A method of processing data for a mesh geometry according to an embodiment of the present invention includes a first step of generating first and second render target textures and first and second vertex lists, A third step of setting a first render target texture as a current render target and a second render target texture as a current texture to be sampled, a third step of setting a first render target texture as a current render target and a first vertex and a first pixel shader, and a first vertex list, and restoring a default render target, and then setting a first render target texture as a current texture; a fifth step of restoring a second render target texture to a second vertex and a second vertex list; And a sixth step of rendering using a second vertex and second pixel shader and a second vertex list.

여기서, 제 1 및 제 2 렌더 타겟 텍스쳐는 마우스 드래그에 의한 다각형 선택 여부를 나타내기 위한 n x n 픽셀 블록이고, n은 홀수일 수 있다.Here, the first and second render target textures are n x n pixel blocks for indicating whether a polygon is selected by dragging a mouse, and n may be an odd number.

또한, 제 1 버텍스 리스트의 버텍스는 메시 지오메트리 내에 존재하는 복수의 삼각형 각각에 대해 생성되며, 버텍스는 3차원 모델 좌표에서 삼각형을 형성하는 3개의 버텍스 위치와 2차원 스크린 위치를 포함할 수 있다.Also, the vertices of the first vertex list are generated for each of a plurality of triangles present in the mesh geometry, and the vertices may include three vertex positions and two-dimensional screen positions forming a triangle in the three-dimensional model coordinates.

또한, 제 2 버텍스 리스트의 버텍스는 메시 지오메트리 내에 존재하는 복수의 삼각형 각각에 대해 복수개씩 생성되며, 버텍스는 3차원 모델 좌표 내에 1개의 버텍스 위치와 2차원 텍스쳐 좌표를 포함할 수 있다.Also, a vertex of the second vertex list is generated for each of a plurality of triangles existing in the mesh geometry, and the vertex may include one vertex position and a two-dimensional texture coordinate in the three-dimensional model coordinate.

또한, 본 발명의 일 실시예에 따른 메시 지오메트리를 위한 데이터 처리 방법은, 제 1 단계 이후에, 제 1 및 제 2 렌더 타겟 텍스쳐의 각 픽셀을 기 설정된 값으로 클리어하는 단계를 더 포함할 수 있고, 제 2 단계 내지 제 6 단계는 마우스 드래그가 진행 중인 경우 반복하여 수행될 수 있다.The method of processing data for a mesh geometry according to an embodiment of the present invention may further include clearing each pixel of the first and second render target textures to a predetermined value after the first step , And the second to sixth steps may be repeatedly performed when the mouse drag is in progress.

또한, 제 4 단계는, 제 1 버텍스 리스트를 제 1 버텍스 셰이더로 전달하여 재 렌더링하는 단계와, 2차원 공간에서 삼각형-직사각형 교차 테스트를 수행하는 단계와, 삼각형-직사각형 교차 테스트의 수행 결과가 성공이면 버텍스가 속하는 다각형을 나타내는 2차원 스크린 위치를 출력하는 단계와, 제 1 픽셀 셰이더에서 직사각형을 구성하는 각 픽셀에 대해 솔리드 컬러를 생성하는 단계를 포함할 수 있고, 여기서, 제 1 버텍스 셰이더 및 제 1 픽셀 셰이더는 각각 다각형 선택 버텍스 셰이더 및 다각형 선택 픽셀 셰이더일 수 있다.The fourth step further includes passing the first vertex list to the first vertex shader for re-rendering, performing a triangle-rectangle intersection test in the two-dimensional space, and performing a triangle- Outputting a two-dimensional screen position representing a polygon to which the vertex belongs; and generating a solid color for each pixel constituting the rectangle in the first pixel shader, wherein the first vertex shader and the second vertex shader The one pixel shader may be a polygon selected vertex shader and a polygon selected pixel shader, respectively.

또한, 제 6 단계는, 제 2 버텍스 리스트를 제 2 버텍스 셰이더로 전달하여 재 렌더링하는 단계와, 제 2 픽셀 셰이더에서, 제 2 버텍스 셰이더에 의해 출력된 2차원 텍스쳐 좌표를 사용하여 제 1 렌더 타겟 텍스쳐를 샘플링하는 단계를 포함할 수 있다. The sixth step further includes transmitting and re-rendering the second vertex list to the second vertex shader, and in the second pixel shader, using the two-dimensional texture coordinates output by the second vertex shader, And sampling the texture.

또한, 본 발명의 일 실시예에 따른 메시 지오메트리를 위한 데이터 처리 방법은, 마우스 드래그가 종료되면, 제 1 렌더 타겟 텍스쳐의 내용을 제 2 렌더 타겟 텍스쳐로 복사하는 단계와, 제 1 렌더 타겟 텍스쳐의 내용을 기초로 다각형 선택 또는 선택 해제에 대한 정보를 제공하는 단계를 더 포함할 수 있다.
According to another aspect of the present invention, there is provided a method of processing data for a mesh geometry, the method comprising: copying a content of a first render target texture to a second render target texture upon completion of a mouse drag; And providing information on polygon selection or deselection based on the contents.

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시예를 참조하여 보다 상세하게 이해될 수 있을 것이다.In addition, the means for solving the above-mentioned problems are not all enumerating the features of the present invention. The various features of the present invention and the advantages and effects thereof will be more fully understood by reference to the following specific embodiments.

본 발명의 일 실시예에 따르면, 마우스 드래그를 하는 동안 삼각형 또는 다각형의 선택 또는 선택 해제는 사용자가 쉽게 메시 지오메트리와 상호작용할 수 있도록 하고, 이로써 마우스 드래그가 끝나고 선택된 삼각형 또는 다각형의 리스트를 획득한 후에 메시 지오메트리를 수정 또는 저장하기 위한 결정을 내리기 위한 사용자의 시간과 노력을 절감할 수 있다.According to one embodiment of the present invention, the selection or deselection of a triangle or polygon during a mouse drag allows the user to easily interact with the mesh geometry, thereby obtaining a list of selected triangles or polygons after the mouse drag is over Thereby saving the user time and effort to make a decision to modify or store the mesh geometry.

도 1은 본 발명의 일 실시예에 따라 다각형 선택 결과를 갖는 3 x 3 픽셀 블록을 포함하는 렌더 타겟 텍스쳐의 일 예를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 직사각형 테스트에서 포인트의 일 예를 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따라 삼각형-직사각형 에지 교차 테스트를 실시하는 일 예를 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따라 선의 교차의 일 예를 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 삼각형 테스트에서 포인트의 일 예를 도시하는 도면이다.
도 6은 본 발명의 일 실시예에 따라 삼각형에서 포인트를 테스트하기 위한 질량중심 좌표를 도시하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름도이다.
1 is a diagram illustrating an example of a render target texture including a 3 x 3 pixel block having polygonal selection results in accordance with an embodiment of the present invention.
2 is a diagram showing an example of points in a rectangular test according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of performing a triangle-rectangular edge intersection test according to an embodiment of the present invention.
4 is a diagram illustrating an example of intersection of lines in accordance with one embodiment of the present invention.
5 is a diagram illustrating an example of points in a triangle test according to an embodiment of the present invention.
6 is a diagram showing the center of mass coordinates for testing a point in a triangle according to an embodiment of the present invention.
7 is a flowchart of a data processing method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, in order that those skilled in the art can easily carry out the present invention. In the following detailed description of the preferred embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In the drawings, like reference numerals are used throughout the drawings.

덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
In addition, in the entire specification, when a part is referred to as being 'connected' to another part, it may be referred to as 'indirectly connected' not only with 'directly connected' . Also, to "include" an element means that it may include other elements, rather than excluding other elements, unless specifically stated otherwise.

기존의 몇몇 애플리케이션은 사용자가 마우스를 이용하여 2차원 직사각형을 그릴 수 있도록 하며, 이 후 CPU를 이용하여 연속적으로 삼각형-사각형 교차를 위한 테스트를 수행할 수 있도록 한다. 그러나, 이러한 애플리케이션들은 메시 지오메트리에서 삼각형의 개수가 증가함에 따라 멀티코어 CPU를 통한 하이퍼스레딩(Hyper-threading)을 사용하더라도 실시간으로 수행하지 않는다.Some existing applications allow the user to draw a two-dimensional rectangle with the mouse, and then use the CPU to perform tests for successively triangular-square intersections. However, these applications do not perform in real time, even if hyper-threading through a multicore CPU is used as the number of triangles in mesh geometry increases.

기존의 몇몇 애플리케이션은 CPU를 이용한 레이 트레이싱(ray-tracing)을 사용하나, 이들 애플리케이션들은 오직 현재 마우스 위치로부터 스크린으로 빛을 투사함으로써 삼각형 선택하게 하거나, 이 빛과 교차하는 직사각형들이 선택되는 것만을 가능하게 할 뿐, 사용자에 의한 선택을 나타내는 2차원 직사각형 내에 위치한 삼각형 또는 다각형을 선택할 수는 없다.
Some existing applications use ray tracing with CPUs, but these applications only allow triangles to be selected by projecting light from the current mouse position onto the screen, or only rectangles intersecting this light can be selected , But can not select a triangle or polygon located within a two-dimensional rectangle indicating selection by the user.

후술하는 본 발명의 일 실시예에서는 GPU(Graphics Processing Unit) 상에서 프로그래머블 버텍스 및 픽셀 셰이더(programmable vertex and pixel shaders)를 사용하여 실시간으로 메시 지오메트리를 위한 2차원 또는 3차원 삼각형 또는 다각형의 선택 및 선택 해제를 위한 데이터 처리 방법에 대해 설명한다.In one embodiment of the invention described below, programmable vertex and pixel shaders are used on a graphics processing unit (GPU) to select and deselect two-dimensional or three-dimensional triangles or polygons for mesh geometry in real- Will be described.

GPU는 병렬 프로세싱, 예를 들어, 단일 명령어로 다중 데이터를 처리하는 SIMD (Single Instruction Multiple Data) 프로세싱의 개념을 사용할 수 있다. 본 발명의 일 실시예에 따라, GPU를 사용하여 프로그래머블 버텍스 및 픽셀 셰이더를 이용하여 많은 삼각형을 병렬적으로 처리하면, 2차원 또는 3차원 삼각형 또는 다각형 선택 및 선택된 삼각형들의 하이라이트는 사용자가 마우스 드래그를 사용하여 직사각형 선택을 변경함에 따라 실시간으로 수행될 수 있고, 선택된 삼각형 또는 다각형에 대한 정보 역시 마우스 드래그가 완료되면 사용자에게 디스플레이될 수 있다.
GPUs can use the concept of SIMD (Single Instruction Multiple Data) processing to process multiple data in parallel processing, for example, a single instruction. According to one embodiment of the present invention, when processing many triangles in parallel using a programmable vertex and pixel shader using a GPU, the highlighting of the two-dimensional or three-dimensional triangle or polygon selection and selected triangles allows the user to drag the mouse And the information on the selected triangle or polygon can be displayed to the user when the mouse drag is completed.

실시예Example 1 :  One : GPUGPU 상의 2차원 또는 3차원 다각형 선택 알고리즘 Two-dimensional or three-dimensional polygon selection algorithm

1 단계 - 메시 지오메트리에서 다각형의 개수를 센다. GPU 메모리에서, 렌더 타겟 텍스쳐(render target texture) (이하, 'RT0'라 한다), 즉, R 채널에서 픽셀당 1.0 또는 0.0 값을 갖는 부동 소수점 형식 형식의 16 비트를 갖는 컬러 버퍼를 생성한다. 이 렌더 타겟의 크기는 렌더링이 수행될 GPU에 의해 지원되는 최대 가능한 렌더 타겟 크기를 고려하여 결정될 수 있다. 예를 들어, 렌더 타겟은 다각형이 선택되었는지 여부를 나타내기 위해 보유되어야 하는 n x n 픽셀 블록일 수 있다. 여기서, n은 홀수이고, 1일 수 있다. Step 1 - Count the number of polygons in the mesh geometry. In the GPU memory, a render target texture (hereinafter, referred to as 'RT0') is created, namely a color buffer having 16 bits of floating point format format with a value of 1.0 or 0.0 per pixel in the R channel. The size of this render target can be determined by taking into account the maximum possible render target size supported by the GPU on which rendering is to be performed. For example, the render target may be an nxn pixel block that must be retained to indicate whether a polygon is selected. Where n is an odd number and may be one.

따라서, 렌더 타겟 너비는 다각형의 개수에 따라 n x n 픽셀 블록을 유지하기 위해 최소 높이 n을 가지며, n의 배수가 되어야 한다. 다각형의 개수가 n x n 픽셀 블록의 첫번째 열 내에 맞지 않으면, n x n 픽셀 블록을 유지하기 위해 더 많은 열이 추가될 수 있다. Thus, the render target width must have a minimum height, n, to hold n x n pixel blocks, depending on the number of polygons, and should be a multiple of n. If the number of polygons does not fit within the first column of the n x n pixel block, then more columns can be added to hold n x n pixel blocks.

예를 들어, 도 1에 도시된 바와 같이, 다각형이 8개 있으면, 최대 가능한 렌더 타겟 크기는 10 x 10 픽셀이고, n = 3이며, 3 x 3 픽셀 블록의 제1 및 제2 열은 처음 6개의 다각형에 대한 선택의 결과를 가질 수 있고, 3 x 3 픽셀 블록의 마지막 열은 마지막 2개의 다각형에 대한 선택의 결과를 가질 수 있다. 따라서, 렌더 타겟 크기는 9 x 9가 될 수 있다. 렌더 타겟은 1 밉맵 레벨을 가질 수 있다. 이 렌더 타겟 텍스쳐의 각 픽셀을 0값으로 채움으로써 렌더 타겟 텍스쳐를 클리어(clear)할 수 있다.
For example, as shown in Fig. 1, if there are eight polygons, the maximum possible render target size is 10 x 10 pixels, n = 3, and the first and second columns of the 3 x 3 pixel block are the first 6 The last column of the 3 x 3 pixel block may have the result of the selection for the last two polygons. Thus, the render target size can be 9 x 9. Render targets can have 1 mipmap level. The render target texture can be cleared by filling each pixel of this render target texture with a value of zero.

다음의 C++ 의사코드(pseudo code)는 렌더 타겟 너비 및 높이(renderTargetWidth 및 renderTargetHeight)를 계산하는 과정을 나타낸다.
The following C ++ pseudo code illustrates the process of calculating the render target width and height (renderTargetWidth and renderTargetHeight).

unsigned int colCount = std::min( polygonsCount, maxRenderTargetWidth / n );unsigned int colCount = std :: min (polygonsCount, maxRenderTargetWidth / n);

unsigned int rowCount = static_cast< unsigned int >( std::ceil(unsigned int rowCount = static_cast <unsigned int> (std :: ceil (

static_cast< float >( polygonsCount ) / colCount ) ); static_cast <float> (polygonsCount) / colCount));

unsigned int renderTargetWidth = colCount * n;unsigned int renderTargetWidth = colCount * n;

unsigned int renderTargetHeight = rowCount * n;
unsigned int renderTargetHeight = rowCount * n;

상술한 의사 코드에서 사용되는 변수의 정의는 다음과 같다.
The definition of the variable used in the above pseudo code is as follows.

polygonsCount: 메시 지오메트리에서 다각형의 개수polygonsCount: number of polygons in mesh geometry

maxRenderTargetWidth: GPU에 의해 지원되는 최대 렌더 타겟 너비maxRenderTargetWidth: Maximum render target width supported by the GPU

maxRenderTargetHeight: GPU에 의해 지원되는 최대 렌더 타겟 높이maxRenderTargetHeight: Maximum render target height supported by the GPU

n: 상술한 픽셀 블록 크기n: the above-described pixel block size

colCount: 렌더 타겟에서 행의 개수colCount: the number of rows in the render target

rowCount: 렌더 타겟에서 열의 개수
rowCount: number of columns in the render target

상술한 의사코드에서 계산된 렌더 타겟 높이가 maxRenderTargetHeight를 초과하면, 다각형의 개수가 렌더 타겟 크기를 초과하고, 이 경우, 본 발명의 일 실시예에 따른 선택 알고리즘은 적용될 수 없다. 그러나, 시중에서 사용 가능한 대부분의 GPU는 적어도 8192 x 8192의 최대 렌더 타겟 크기를 지원하기 때문에 이러한 가능성은 극히 낮다.
If the render target height calculated in the above pseudo code exceeds maxRenderTargetHeight, the number of polygons exceeds the render target size, in which case the selection algorithm according to an embodiment of the present invention can not be applied. However, this possibility is extremely low because most GPUs available on the market support a maximum render target size of at least 8192 x 8192.

2 단계 - CPU 상에서 버텍스 리스트(이하, 'V0'라 한다)를 생성한다. 여기서, 버텍스는 메시 지오메트리 내에 존재하는 각각의 삼각형에 대해 하나씩 생성할 수 있다. 각 버텍스에 대한 데이터는 3차원 모델 좌표에서 삼각형을 형성하는 3개의 버텍스 위치와, 출력 버텍스 위치가 되는 스크린 좌표 내의 2차원 위치로 구성될 수 있다. 각 버텍스는 상술한 1 단계에서 기술한 크기 n의 포인트 스프라이트(point sprite)를 나타낼 수 있다. Step 2 - Create a vertex list (hereinafter referred to as 'V0') on the CPU. Here, the vertex can be generated one for each triangle present in the mesh geometry. The data for each vertex can be composed of three vertex positions forming a triangle in the three-dimensional model coordinates and a two-dimensional position in the screen coordinates being the output vertex position. Each vertex may represent a point sprite of size n described in step 1 above.

버텍스의 2차원 스크린 위치는 각 다각형을 고유하게 나타내기 위해 렌더 타겟 RT0에서 보유되는 n x n 픽셀 블록 내에서 중심 픽셀의 중심에 해당할 수 있다. 다시 말해, 각 삼각형은 자신이 속하는 다각형에 대한 정보(예를 들어, 0 기반 다각형 인덱스)를 가져야만 하며, 이 정보는 2차원 출력 스크린 위치를 계산하는데 사용될 수 있다.The two-dimensional screen position of the vertex may correspond to the center of the center pixel within the nxn pixel block held in the render target RT0 to uniquely represent each polygon. In other words, each triangle must have information about the polygon to which it belongs (for example, a zero-based polygon index), and this information can be used to calculate the two-dimensional output screen position.

따라서, 첫 번째 다각형을 나타내기 위해, 렌더 타겟 텍스쳐의 n x n 픽셀 블록의 첫 번째 열에서 첫 번째 n x n 블록의 중심 픽셀이 사용될 수 있다. 즉, 렌더 타겟 크기가 9 x 9이고 n이 3인 상술한 예에서, 중심 픽셀은 0 기반의 픽셀 위치 (1, 1), 즉, 텍스쳐에서 두 번째 열의 두 번째 행으로 나타낼 수 있다. 이 픽셀 위치는 -1.0 및 1.0 사이의 스크린 공간 좌표로 변환될 수 있다. 따라서, 다각형에 속하는 각각의 삼각형은 렌더 타겟 상에서 다각형에 대해 보유된 공통의 2차원 스크린 위치를 가질 수 있다.
Thus, to represent the first polygon, the center pixel of the first nxn block in the first column of the nxn pixel block of the render target texture may be used. That is, in the above example where the render target size is 9 x 9 and n is 3, the center pixel may be represented by a zero-based pixel position (1, 1), i.e. the second row of the second column in the texture. This pixel position can be converted to screen space coordinates between -1.0 and 1.0. Thus, each triangle belonging to a polygon may have a common two-dimensional screen location held for the polygon on the render target.

다음의 C++ 의사코드는 렌더 타겟 텍스쳐 RTO에 대한 너비 및 높이가 결정된 후에 각 다각형에 대한 2차원 스크린 위치를 생성하는 과정을 나타낸다.
The following C ++ pseudocode illustrates the process of creating a two-dimensional screen location for each polygon after the width and height for the render target texture RTO have been determined.

unsigned int renderTargetWidth = decided based on Step (1); unsigned int renderTargetWidth = decided based on Step (1) ;

unsigned int renderTargetHeight = decided based on Step (1);
unsigned int renderTargetHeight = decided based on Step (1) ;

// half pixel offset must be used for texture coordinates in order to sample // half pixel offset must be used for texture coordinates in order to sample

// exact center of pixel// exact center of pixel

float texelOffsetU = 0.5f / renderTargetWidth;float texelOffsetU = 0.5f / renderTargetWidth;

float texelOffsetV = 0.5f / renderTargetHeight;
float texelOffsetV = 0.5f / renderTargetHeight;

unsigned int pointSpriteSize = 1;unsigned int pointSpriteSize = 1;

unsigned int pointSpriteSizeHalf = pointSpriteSize / 2;unsigned int pointSpriteSizeHalf = pointSpriteSize / 2;

unsigned int colCount = renderTargetWidth / pointSpriteSize;unsigned int colCount = renderTargetWidth / pointSpriteSize;

unsigned int rowIndex = polygonIndex / colCount;unsigned int rowIndex = polygonIndex / colCount;

unsigned int colIndex = polygonIndex % colCount;
unsigned int colIndex = polygonIndex% colCount;

// calculation for texture coordinates// calculation for texture coordinates

float texCoordU = ( static_cast< float >( ( colIndex * pointSpriteSize ) float texCoordU = (static_cast <float> ((colIndex * pointSpriteSize)

+ pointSpriteSizeHalf ) / renderTargetWidth ) + texelOffsetU;+ pointSpriteSizeHalf) / renderTargetWidth) + texelOffsetU;

float texCoordV = ( static_cast< float >( ( rowIndex * pointSpriteSize ) float texCoordV = (static_cast <float> ( (rowIndex * pointSpriteSize)

+ pointSpriteSizeHalf ) / renderTargetHeight ) + texelOffsetV;
+ pointSpriteSizeHalf) / renderTargetHeight) + texelOffsetV;

// calculation for XY screen position// calculation for XY screen position

float posX = ( texCoordU * 2.0f ) - 1.0f;float posX = (texCoordU * 2.0f) - 1.0f;

float posY = -( ( texCoordV * 2.0f ) - 1.0f );
float posY = - ((texCoordV * 2.0f) - 1.0f);

3 단계 - CPU 상에서 또 다른 버텍스 리스트(이하, 'V1'라 한다)를 생성한다. 여기서, 버텍스는 메시 지오메트리 내에 존재하는 각각의 삼각형에 대해 3개씩 생성한다. 각 버텍스에 대한 데이터는 3차원 모델 좌표 내에 하나의 버텍스 위치 및 2차원 텍스쳐 좌표로 구성될 수 있다. 삼각형이 속하는 다각형을 나타내기 위한 -1.0 및 1.0 사이의 2차원 스크린 위치에 포함된 포인트 스프라이트를 위한 버텍스 V0의 리스트와 같이, 이 2차원 스크린 위치는 0.0 및 1.0 사이의 텍스쳐 좌표로 변환될 수 있다(상술한 2 단계에서 기술된 의사코드에서 변수 texCoordU 및 texCoordV 참조). 또한, 2차원 스크린 위치는 선택된 다각형을 나타내는 n x n 픽셀 블록을 포함하는 렌더 타겟 텍스쳐를 샘플링 하기 위해 버텍스의 2차원 텍스쳐 좌표로서 사용될 수 있다.
Step 3 - Create another vertex list (hereinafter referred to as 'V1') on the CPU. Here, vertices are generated for each triangle in the mesh geometry. The data for each vertex may consist of one vertex position and two-dimensional texture coordinates within the three-dimensional model coordinates. This two-dimensional screen position can be converted to a texture coordinate between 0.0 and 1.0, such as a list of vertices V0 for point sprites contained in a two-dimensional screen position between -1.0 and 1.0 to represent the polygon to which the triangle belongs (See the variables texCoordU and texCoordV in the pseudocode described in step 2 above). In addition, the two-dimensional screen position can be used as the two-dimensional texture coordinates of the vertex to sample the render target texture including nxn pixel blocks representing the selected polygon.

4 단계 - 원본 버텍스 데이터를 사용하여 사용자에 의해 특정된 변환 (transformation)(예를 들어, 스케일링, 회전, 이동)으로 메시 지오메트리를 렌더링한다. 메시 지오메트리를 렌더링하는 동안 임의의 솔리드 컬러 또는 텍스쳐가 사용될 수 있다. 이제, 후술하는 바와 같이, 동일한 지오메트리를 다시 렌더링하는 것을 준비할 수 있다.
Step 4 - Render mesh geometry with user specified transformations (eg, scaling, rotating, moving) using original vertex data. Any solid color or texture can be used while rendering the mesh geometry. Now, as described below, you can prepare to render the same geometry again.

5 단계 - 상술한 1 단계에서 언급된 렌더 타겟 텍스쳐 RTO를 렌더링이 수행되어야 할 현재 렌더 타겟으로 설정한다. Step 5 - Set the render target texture RTO mentioned in step 1 as the current render target to be rendered.

6 단계 - 상술한 2 단계에서 기술한 버텍스 V0을 포인트 리스트의 형태로 버텍스 셰이더(이하, '다각형 선택 버텍스 셰이더'라 한다)에 전달함으로써 메시 지오메트리를 다시 렌더링한다. 여기서, 버텍스 셰이더는 각 삼각형의 각 버텍스에 대해 한번씩 실행될 수 있다. Step 6 - The mesh geometry is re-rendered by passing the vertex V0 described in step 2 above to a vertex shader (hereinafter referred to as a polygon selected vertex shader) in the form of a point list. Here, the vertex shader can be executed once for each vertex of each triangle.

버텍스 셰이더에서, 삼각형을 구성하는 3개의 버텍스 위치를 실세계의 물체, 뷰(view) 그리고 프로젝션 매트릭스를 사용하여 변환해서 3개의 4차원 출력 위치를 획득할 수 있다. 이 3개의 출력 버텍스 위치의 XY 좌표는 상응하는 W 좌표의 절대값으로 나누어져 2차원 스크린 공간에서 삼각형의 3 버텍스 위치를 획득할 수 있다(즉, -1.0 내지 1.0).
In a vertex shader, three vertex positions that make up a triangle can be transformed using real-world objects, views, and projection matrices to obtain three 4-dimensional output positions. The XY coordinates of these three output vertex locations can be divided by the absolute value of the corresponding W coordinate to obtain the three vertex positions of the triangle in the two-dimensional screen space (i.e., -1.0 to 1.0).

7 단계 - 삼각형이 추려지지 않았는지, 즉, 삼각형의 버텍스들을 시계방향 또는 반시계방향으로 확인함으로 렌더링 중에 제거되었는지 확인한다. 이는 예를 들어, 구와 같은 3차원 객체의 뒷 부분에 포함되는 삼각형과 같이 사용자를 직면하지 않는 삼각형들이 삼각형-직사각형 교차 테스트를 통과하는 것을 방지할 수 있다. 이후, 2차원 공간에서 삼각형-직사각형 교차 테스트를 수행한다. Step 7 - Make sure that the triangle is not culled, that is, it is removed during rendering by checking the vertices of the triangle clockwise or counterclockwise. This can prevent, for example, triangles that do not face the user, such as triangles included in the back of a three-dimensional object such as a sphere, to pass through a triangle-rectangle intersection test. Then, a triangle-rectangle intersection test is performed in the two-dimensional space.

삼각형 및 직사각형이 2차원 공간에 존재할 때, 후술하는 3 개의 교차 테스트 중 어느 하나가 성공적이면, 이들은 교차한다.
When triangles and rectangles exist in a two-dimensional space, if any of the three intersection tests described below are successful, they intersect.

i) 도 2에 도시된 바와 같이, 삼각형(이하, 'T'라 한다)의 3개의 버텍스 중 어느 하나가 직사각형(이하, 'R'이라 한다)의 경계 박스 내에 있으면, 다음을 만족한다.i) If any one of the three vertices of a triangle (hereinafter referred to as 'T') is within a bounding box of a rectangle (hereinafter referred to as 'R') as shown in FIG.

( T.vertex.x >= R.left ) and (T.vertex.x > = R.left) and

( T.vertex.x <= R.right ) and (T.vertex.x <= R.right) and

( T.vertex.y >= R.top ) and(T.vertex.y > = R.top) and

( T.vertex.y <= R.bottom )
(T.vertex.y <= R.bottom)

ii) 도 3 및 도 4에 도시된 바와 같이, 삼각형의 3개의 에지 중 하나와 직사각형의 4 개의 에지 중 하나의 교차점이 2개의 선에 있으면, 즉, 후술하는 바에 따라 계산된 ua 및 ub가 모두 0 및 1 사이에 있으면, 이 테스트가 수행된다. ii) As shown in Fig. 3 and Fig. 4, if the intersection of one of the three edges of the triangle and one of the four edges of the rectangle is on two lines, i.e., ua and ub calculated according to the following If it is between 0 and 1, this test is performed.

예를 들어, 도 4에 도시된 각각의 선은 다음의 수학식 1과 같이 나타낼 수 있다.For example, each line shown in FIG. 4 can be expressed by the following equation (1).

Figure pat00001
Figure pat00001

여기서, Pa=Pb인 포인트를 구하기 위해, 다음의 수학식 2를 풀 수 있다.Here, in order to obtain a point of Pa = Pb, the following expression (2) can be solved.

Figure pat00002
Figure pat00002

수학식 2를 풀면 다음과 같은 결과를 얻을 수 있다.Solving equation (2) yields the following results.

Figure pat00003

Figure pat00003

iii) 직사각형의 4 개의 버텍스 중 어느 하나가 삼각형 내에 존재한다. 이 테스트는 도 5 및 도 6에 도시된 바와 같이, 무게중심 좌표(Barycentric coordinate)를 사용하여 수행될 수 있다.iii) Any one of the four vertices of the rectangle exists in the triangle. This test can be performed using a barycentric coordinate, as shown in Figs. 5 and 6. Fig.

예를 들어, 도 6에 도시된 경우 상기 테스트를 수행하는 다음의 C++ 의사코드는 다음과 같다.For example, in the case shown in FIG. 6, the following C ++ pseudo code for performing the test is as follows.

Figure pat00004

Figure pat00004

8 단계 - 출력 4차원 위치를 생성하는데, 여기서, Z 성분은 0 값을 갖고, W 성분은 1 값을 가질 수 있다. Step 8- Generate an output 4-dimensional position, where the Z component has a value of zero and the W component can have a value of one.

상술한 7 단계에서 삼각형-직사각형 교차 테스트가 성공적이면, 버텍스가 속하는 다각형을 나타내는 2차원 스크린 위치를 출력 XY 위치로 사용하고, 그렇지 않으면, 포인트 외부 스크린(point outside screen)을 나타내기 위해 (-2.0, 2.0)와 같은 값을 사용해서 픽셀 셰이더에 의해 출력이 생성되지 않도록 한다. 출력 버텍스 위치를 생성하는 동안, 포인트 스프라이트는 비활성화하고, 포인트 스프라이트 크기를 n으로 설정하여 각 포인트가 n x n 픽셀의 직사각형으로 표현되도록 할 수 있다.If the triangle-rectangle intersection test is successful in step 7 above, the 2D screen position representing the polygon to which the vertex belongs is used as the output XY position, otherwise, to represent the point outside screen (-2.0 , 2.0) to prevent output from being generated by the pixel shader. During generation of the output vertex position, the point sprite may be deactivated and the point sprite size may be set to n such that each point is represented by a rectangle of n x n pixels.

단일 픽셀, 즉, 1 x 1 픽셀 블록이 다각형을 나타내기 위해 사용될 수 있으며, 상술한 알고리즘을 수행한 후에도 GPU 드라이버 실행과 같은 하드웨어 제한에 의해 다각형 선택이 부정확하면, 추후 렌더 타겟 RT0을 샘플링하는 동안 정확성의 손실을 방지하기 위해 n=3이 사용될 수 있다.
A single pixel, i.e., a 1 x 1 pixel block, can be used to represent a polygon, and even after performing the algorithm described above, if the polygon selection is incorrect due to hardware limitations such as GPU driver execution, To prevent loss of accuracy, n = 3 may be used.

9 단계 - 해당하는 픽셀 셰이더(이하, '다각형 선택 픽셀 셰이더'라 한다)에서 포인트 스프라이트를 위해, 포인트 스프라이트의 직사각형 형태를 구성하는 각 픽셀에 대해 (1.0, 0.0, 0.0, 1.0) RGBA 값을 갖는 솔리드 컬러를 생성한다.
Step 9 - For the point sprite in the corresponding pixel shader (hereafter referred to as the polygon selected pixel shader), for each pixel that constitutes the rectangular shape of the point sprite, have RGBA values (1.0, 0.0, 0.0, 1.0) Create a solid color.

10 단계 - 다각형에 속하는 삼각형이 삼각형-직사각형 교차 테스트를 통과할 때마다, 렌더 타겟 텍스쳐 RT0은 n x n 픽셀 블록 내에서 솔리드 컬러로 채워진다. 렌더 타겟을 디폴트 렌더 타겟으로 복원하고, RT0을 비활성화된 텍스쳐 밉맵(mipmap)을 갖는 포인트 필터링을 사용하여 픽셀 셰이더에서 샘플링되어야 할 현재 텍스쳐(포인트 스프라이트를 나타내는 솔리드 컬러의 n x n 블록을 포함)로 설정한다.
Step 10 - Whenever a triangle belonging to a polygon passes a triangle-rectangle intersection test, the render target texture RT0 is filled with solid color within the nxn pixel block. Restores the render target to the default render target and sets RT0 to the current texture (including the nxn block of solid color representing the point sprite) to be sampled in the pixel shader using point filtering with deactivated texture mipmap .

11 단계 - 3 단계에서 기술한 버텍스 V1을 삼각형 리스트의 형태로 버텍스 셰이더(이하, '다각형 하이라이트 버텍스 셰이더'라 한다)로 전달함으로써 메시 지오메트리를 삼각형 리스트(Triangle list)의 형태로 다시 렌더링한다. 여기서, 버텍스 셰이더는 각 삼각형의 각 버텍스에 대해 한번씩 실행될 수 있다. 버텍스 셰이더에서, 버텍스 위치를 실세계의 물체, 뷰(view) 그리고 프로젝션 매트릭스를 사용하여 변환해서 4차원 출력 위치를 획득한다. 입력 2차원 텍스쳐 좌표를 출력 2차원 텍스쳐 좌표로 사용한다.
The mesh geometry is re-rendered in the form of a triangle list by passing the vertex V1 described in steps 11 and 3 to a vertex shader (hereinafter referred to as a polygon highlight vertex shader) in the form of a triangle list. Here, the vertex shader can be executed once for each vertex of each triangle. In a vertex shader, a vertex position is transformed using a real-world object, view, and projection matrix to obtain a four-dimensional output location. Use input 2D texture coordinates as output 2D texture coordinates.

12 단계 - 해당하는 픽셀 셰이더(이하, '다각형 하이라이트 픽셀 셰이더'라 한다)에서, 버텍스 셰이더에 의해 출력된 2차원 텍스쳐 좌표를 사용하여 렌더 타겟 텍스쳐 RT0에서 n x n 픽셀 블록 내의 중심 픽셀의 중심을 샘플링하고(이 경우, 비활성화된 밉맵(mipmap)을 갖는 포인트 필터링을 사용한다), 획득된 컬러의 R 채널의 값을 픽셀 셰이더에 의해 출력되는 컬러의 알파 값(alpha value)으로 사용한다. 출력되는 RGB 컬러 값이 선택된(하이라이트된) 다각형을 나타내기 위해 사용될 수 있다.
Step 12 - In the corresponding pixel shader (hereinafter referred to as a 'polygon highlight pixel shader'), the center of the center pixel in the nxn pixel block is sampled in the render target texture RT0 using the 2D texture coordinates output by the vertex shader (In this case, point filtering with deactivated mipmap is used) and the value of the R channel of the obtained color is used as the alpha value of the color output by the pixel shader. The output RGB color value can be used to represent the selected (highlighted) polygon.

13 단계 - 상술한 4 내지 12 단계를 반복 수행하여, 사용자가 마우스 드래그를 수행하는 중에 다각형의 선택 및 하이라이팅을 수행할 수 있도록 한다. 이전에 선택된 다각형을 해제하기 위해, 렌더 타겟 RTO의 각 픽셀에 대해 0 값으로 하기 위한 사용자 동작(예를 들어, 더블 클릭)이 사용될 수 있다.
Step 13-Repeat the above-described steps 4 to 12 so that the user can perform polygon selection and highlighting while performing mouse dragging. To release a previously selected polygon, a user action (e. G., Double click) may be used to zero the value for each pixel of the render target RTO.

실시예Example 2 :  2 : GPUGPU 상의 2차원 또는 3차원 삼각형 선택 알고리즘 Two-dimensional or three-dimensional triangular selection algorithm

각 삼각형을 분리된 다각형으로 고려하면, 상술한 실시예 1의 다각형 선택 알고리즘을 삼각형 선택에도 사용할 수 있다.
Considering each triangle as a separate polygon, the polygon selection algorithm of the first embodiment described above can also be used for triangle selection.

실시예Example 3 :  3: GPUGPU 상의 2차원 또는 3차원 삼각형 또는 다각형 선택 해제 알고리즘 Two-dimensional or three-dimensional triangle or polygon deselection algorithm

마우스 드래그를 수행하는 동안 2차원 직사각형을 사용하여 삼각형 또는 다각형을 선택하면서, 사용자는 특정 선택된 삼각형 또는 다각형을 선택 해제하기를 원할 수도 있다. 이를 위해, 사용자는 마우스를 선택된 삼각형 또는 다각형 위로 드래그하여 2차원 직사각형을 그리거나, 이전에 선택된 모양을 선택해제 할 수 있도록 단순히 선택된 모양을 클릭할 수 있다. 이와 같은 동작을 위해, 상술한 실시예 1에서 기술한 알고리즘이 다음과 같이 수정될 수 있다.
While selecting a triangle or polygon using a two-dimensional rectangle while performing a mouse drag, the user may desire to deselect a particular selected triangle or polygon. To do this, the user can simply drag the mouse over the selected triangle or polygon to draw a two-dimensional rectangle, or simply click on the selected shape to deselect the previously selected shape. For this operation, the algorithm described in the first embodiment can be modified as follows.

A 단계 - GPU 메모리에서, 새로운 마우스 세션이 시작되기 전에 사용자에 의해 수행된 삼각형 또는 다각형 선택을 나타내기 위해, 상술한 실시예 1의 1 단계에서 기술한 렌더 타겟 텍스쳐 RT0과 유사한 또 다른 렌더 타겟 텍스쳐(이하 'RT1'이라 함)를 생성한다.
Step A - In GPU memory, another render target texture, similar to the render target texture RT0 described in step 1 of embodiment 1 above, is used to represent the triangle or polygon selection performed by the user before the start of a new mouse session (Hereinafter referred to as &quot; RT1 &quot;).

B 단계 - 상술한 실시예 1의 5 단계를 실행하는 동안, 비활성화된 텍스쳐 밉맵(disabled texture mipmap)을 갖는 포인트 필터링(Point filtering)을 이용하여 RT1을 픽셀 셰이더에서 샘플링되어야 할 현재 텍스쳐로 설정한다.
Step B - During execution of step 5 of the first embodiment described above, RT1 is set to the current texture to be sampled in the pixel shader using point filtering with a disabled texture mipmap.

C 단계 - 상술한 실시예 1의 8 단계에서 기술한 버텍스를 위한 출력 위치를 생성하는 동안, 스크린 공간 (-1.0 내지 1.0)의 출력 버텍스 위치를 텍스쳐 공간 (0.0 내지 1.0)으로 변환하고, 생성된 텍스쳐 좌표를 픽셀 셰이더로 전달한다.
Step C - While generating the output position for the vertex described in step 8 of the first embodiment described above, the output vertex position of the screen space (-1.0 to 1.0) is converted into the texture space (0.0 to 1.0) Pass texture coordinates to the pixel shader.

D 단계 - 상술한 실시예 1의 9 단계에서 기술한 픽셀 셰이더에서, 3 단계에서 기술한 버텍스 셰이더에 의해 출력된 텍스쳐 좌표를 입력 텍스쳐 좌표로 사용하고, 이 텍스쳐 좌표를 사용하여 텍스쳐 RT1을 샘플링한다. 샘플링된 컬러의 R 성분이 1.0이면, 이는 해당하는 삼각형 또는 다각형이 이전에 선택되었음을 의미하고, 이 경우, 픽셀 셰이더에 의해 출력된 RGBA 컬러는 삼각형 또는 다각형 선택 해제를 허용하기 위해 (0.0, 0.0, 0.0, 1.0)이 되어야 하고, 그렇지 않은 경우, 삼각형 또는 다각형 선택을 허용하기 위해 컬러 출력이 (1.0, 0.0, 0.0, 1.0)이 되어야 한다.
Step D - In the pixel shader described in the ninth step of the first embodiment, the texture coordinates output by the vertex shader described in step 3 are used as the input texture coordinates, and the texture RT1 is sampled using the texture coordinates . If the R component of the sampled color is 1.0, this means that the corresponding triangle or polygon has previously been selected, in which case the RGBA color output by the pixel shader may be used to allow triangle or polygon deselection (0.0, 0.0, 0.0, 1.0), otherwise the color output should be (1.0, 0.0, 0.0, 1.0) to allow triangular or polygonal selection.

E 단계 - 마우스 드래그를 수행하는 중에 B 단계 내지 D 단계를 반복적으로 수행함으로써, 사용자가 삼각형 또는 다각형의 제거 또는 선택 해제를 수행하도록 할 수 있다. 마우스 드래그가 완료되면, 삼각형 또는 다각형 선택 결과는 RT0에 저장될 수 있다. RTO의 전체 내용을 RT1에 복사함으로써 다음 마우스 드래그를 준비한다.
Step E - During the mouse dragging, steps B to D may be repeatedly performed to allow the user to perform the removal or deselection of the triangle or polygon. When the mouse drag is complete, the result of the triangle or polygon selection can be stored in RT0. Prepare the next mouse drag by copying the entire contents of RTO to RT1.

F 단계 - 사용자가 기존의 삼각형 또는 다각형 선택을 지우기를 원할 경우, RT1은 RTO과 함께 클리어될 수 있다.
Step F - If the user wants to clear the existing triangle or polygon selection, RT1 can be cleared with RTO.

이후, 다각형 선택 결과를 포함하는 렌더 타겟 텍스쳐 RTO는 시스템 메모리에 할당된 또 다른 텍스쳐에 복사될 수 있고, 이 텍스쳐는 CPU 상에서 순차로 각 픽셀 값을 하나씩 읽는 방식으로 읽혀질 수 있다. 만약, 픽셀의 값이 1.0이면, 해당하는 삼각형 또는 다각형이 선택되었음을 의미하고, 선택된 삼각형 또는 다각형 인덱스를 나타내는 해당 픽셀 인덱스가 사용자에게 디스플레이 될 수 있다.Thereafter, the render target texture RTO containing the result of the polygon selection may be copied to another texture assigned to the system memory, which can be read in such a manner that each pixel value is read one by one on the CPU in sequence. If the value of the pixel is 1.0, it means that the corresponding triangle or polygon has been selected, and the corresponding pixel index indicating the selected triangle or polygon index can be displayed to the user.

GPU 메모리로부터 시스템 메모리로 텍스쳐를 복사하는 과정은 마우스 드래그 동안 삼각형 또는 다각형을 선택하는 것에 비해 비교적 느리기 때문에, 이 과정은 마우스 드래그가 종료된 후에 수행될 수 있다.
Since the process of copying a texture from GPU memory to system memory is relatively slow compared to selecting a triangle or polygon during mouse dragging, this process can be performed after the mouse drag ends.

도 7은 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름도로서, 상술한 실시예 1 및 2 중 어느 하나를 기초로 사용자의 마우스 드래그 동안 데이터를 처리하는 과정을 도시한다.
FIG. 7 is a flowchart of a data processing method according to an embodiment of the present invention, illustrating a process of processing data during a mouse drag of a user based on any one of the first and second embodiments.

도 7을 참조하면, 우선, 렌더 타겟 텍스쳐(RT0, RT1) 및 버텍스 버퍼(VT0, VT1)를 생성하고(S11), 각 픽셀에 대해 RT0 및 RT1을 0 값으로 클리어한다(S12). 여기서 버텍스 버퍼(VT0, VT1)는 생성된 버텍스 리스트(V0, V1)를 포함할 수 있다. S11 및 S12는 상술한 실시예 1에서 1 단계 내지 3 단계에 상응하는 것이다.
Referring to FIG. 7, first, render target textures RT0 and RT1 and vertex buffers VT0 and VT1 are generated (S11), and RT0 and RT1 are cleared to 0 (S12) for each pixel. Here, the vertex buffers VT0 and VT1 may include generated vertex lists V0 and V1. S11 and S12 correspond to steps 1 to 3 in the above-described first embodiment.

이후, 직사각형 선택을 위해 사용자에 의한 마우스 드래그가 진행 중인지 여부를 판단하여(S13), 마우스 드래그가 진행 중인 경우 후술하는 S14 내지 S18 단계를 반복 수행한다.Thereafter, it is determined whether or not the mouse dragging by the user is in progress for selecting the rectangle (S13). If the dragging of the mouse is in progress, steps S14 to S18 to be described later are repeated.

구체적으로, 원본 메시 지오메트리를 변환으로 렌더링한다(S14). S14는 상술한 실시예 1에서 4 단계에 상응하는 것이다.Specifically, the original mesh geometry is rendered as a transformation (S14). S14 corresponds to the fourth step in the first embodiment.

이후, RT0을 현재 렌더 타겟으로 설정하고, RT1을 비활성화된 텍스쳐 밉맵을 갖는 포인트 필터링을 이용하여 샘플링될 현재 텍스쳐로 설정한다(S15). S15는 상술한 실시예 1에서 5 단계에 상응하는 것이다.Thereafter, RT0 is set as the current render target, and RT1 is set to the current texture to be sampled using point filtering with the deactivated texture mipmap (S15). S15 corresponds to the fifth step in the first embodiment described above.

이후, 버텍스 리스트 V0 및 다각형 선택 버텍스 및 픽셀 셰이더를 이용하여 선택된 다각형을 나타내는 포인트 스프라이트를 렌더링한다(S16). S16은 상술한 실시예 1에서 6 단계 내지 9 단계에 상응하는 것이다.Then, a point sprite representing the selected polygon is rendered using the vertex list V0 and the polygon selection vertex and pixel shader (S16). S16 corresponds to steps 6 to 9 in the first embodiment described above.

이후, 디폴트 렌더 타겟을 복원하고 RT0을 비활성화된 텍스쳐 밉맵을 갖는 포인트 필터링을 이용하여 샘플링될 현재 텍스쳐로 사용한다(S17). S17은 상술한 실시예 1에서 10 단계에 상응하는 것이다.Thereafter, the default render target is restored and RT0 is used as the current texture to be sampled using point filtering with the deactivated texture mipmap (S17). S17 corresponds to step 10 in the first embodiment.

이후, 버텍스 리스트 V1 및 다각형 하이라이트 버텍스 및 픽셀 셰이더를 이용하여 선택된 다각형을 나타내는 삼각형을 렌더링한다(S18). S18은 상술한 실시예 1에서 11 단계 및 12 단계에 상응하는 것이다.
Then, a triangle representing the selected polygon is rendered using the vertex list V1 and polygon highlight vertex and pixel shader (S18). S18 corresponds to steps 11 and 12 in the first embodiment described above.

이후, 마우스 드래그가 종료되면, RT0의 전체 내용을 RT1로 복사한 후(S19), RT0의 전체 내용을 시스템 메모리 내의 텍스쳐로 복사하고, 그 텍스쳐를 읽어서 사용자에게 다각형 선택에 대해 알려줄 수 있다(S20).
Then, when the mouse drag is completed, the entire contents of RT0 are copied to RT1 (S19), the entire contents of RT0 are copied to the texture in the system memory, the texture is read and the user is informed about the polygon selection (S20 ).

상술한 본 발명의 실시예에 따른 데이터 처리 방법은, 이를 수행하기 위한 컴퓨터 프로그램 코드(예를 들어, C++, JAVA 등)로 구현되어 컴퓨터로 판독 가능한 저장 매체에 기록될 수 있다. 여기서, 컴퓨터로 판독 가능한 저장 매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등을 포함할 수 있다.
The data processing method according to the embodiment of the present invention may be implemented in a computer program code (for example, C ++, JAVA, etc.) for performing the data processing and recorded in a computer-readable storage medium. Here, the computer-readable storage medium may include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical media storage, and the like.

상술한 본 발명의 실시예를 다음과 같은 하드웨어 환경에서 실행한 결과는 다음과 같다.The results of executing the above-described embodiment of the present invention in the following hardware environment are as follows.

1) 인텔 i5-3470 CPU1) Intel i5-3470 CPU

2) 4 GB RAM2) 4 GB RAM

3) 인텔 HD 4000 GPU with 1760 MB 메모리 (128 MB 전용 GPU 메모리 포함).
3) Intel HD 4000 GPU with 1760 MB memory (128 MB dedicated GPU memory included).

다음의 표 1은 349448 개의 삼각형으로 구성된 메시를 위해 애플리케이션에서, 사용자에 의해 그려진 2차원 직사각형을 기초로 삼각형 선택을 수행하고 선택에 대한 정보를 사용자에게 제공(벡터에서 선택된 삼각형 인덱스들을 저장함으로써)하는데 필요로 하는 시간을 나타낸다.
The following Table 1 performs triangular selection based on a two-dimensional rectangle drawn by the user in an application for a mesh composed of 349448 triangles and provides information about the selection to the user (by storing selected triangle indices in the vector) It represents the time required.

OpenMP 없이 CPU를 사용하는 경우 (A)When using CPU without OpenMP (A) OpenMP와 함께 CPU를 사용하는 경우 (B)When using CPU with OpenMP (B) 버텍스 및 픽셀 셰이더와 함께 CPU를 사용하는 경우 (C)When using CPU with vertex and pixel shader (C) 시간 (ms)Time (ms) 368 ms368 ms 103 ms103 ms 9 ms
(마우스 드래그 동안 삼각형 선택을 위해 1 ms, 마우스 드래그 완료 후에 삼각형 선택에 대한 정보를 제공하기 위해 8 ms)
9 ms
(1 ms to select triangle during mouse drag, 8 ms to provide information about triangle selection after mouse drag completion)
계산 속도의 개선 (%)Improvement in calculation speed (%) -- (A)에 비해 357%(A) and 357% (A)에 비해 4088%
(B)에 비해 1144%
(A)
(B)

본 발명의 일 실시예에 따르면, 마우스 드래그를 하는 동안 삼각형 또는 다각형의 선택 또는 선택 해제는 사용자가 쉽게 메시 지오메트리와 상호작용할 수 있도록 하고, 이로써 마우스 드래그가 끝나고 선택된 삼각형 또는 다각형의 리스트를 획득한 후에 메시 지오메트리를 수정 또는 저장하기 위한 결정을 내리기 위한 사용자의 시간과 노력을 절감할 수 있다.According to one embodiment of the present invention, the selection or deselection of a triangle or polygon during a mouse drag allows the user to easily interact with the mesh geometry, thereby obtaining a list of selected triangles or polygons after the mouse drag is over Thereby saving the user time and effort to make a decision to modify or store the mesh geometry.

또한, 본 발명의 일 실시예에 따르면, 데이터 처리 대부분의 계산이 GPU에서 수행되므로 CPU가 마우스 드래그의 진행 등과 같은 다른 작업을 수행할 수 있다.Also, according to an embodiment of the present invention, most of the data processing is performed in the GPU, so that the CPU can perform other tasks such as the progress of the mouse drag.

또한, 본 발명의 일 실시예에 따르면, 프로그래머블 버텍스 및 픽셀 셰이더를 사용하므로, 시중의 대부분의 그래픽 카드(GPU)에 의해 지원되는 셰이더 모델 2.0 또는 3.0을 사용하여 수행될 수 있다. Also, according to one embodiment of the present invention, since it uses programmable vertex and pixel shader, it can be performed using shader model 2.0 or 3.0 supported by most graphics cards (GPUs) on the market.

또한, 본 발명의 일 실시예가 DirectX 9.0c API를 사용하여 실행되는 경우, 윈도우 XP 또는 다은 윈도우의 상위 버전에서 실행될 수 있다. 마찬가지로, 본 발명의 일 실시예는 OpenGL을 사용하는 다양한 플랫폼에서 실행될 수 있다.
In addition, when an embodiment of the present invention is executed using the DirectX 9.0c API, it can be executed in a higher version of Windows XP or later Windows. Likewise, one embodiment of the invention may be implemented on a variety of platforms using OpenGL.

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다. 또한, 전술한 본 발명의 실시예들 각각의 구성요소들 전부 또는 일부가 선택적으로 서로 조합되어 이루어질 수 있다.The present invention is not limited to the above-described embodiments and the accompanying drawings. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. In addition, all or a part of each of the above-described embodiments of the present invention may be selectively combined with each other.

Claims (11)

제 1 및 제 2 렌더 타겟 텍스쳐(render target texture)와 제 1 및 제2 버텍스 리스트를 생성하는 제 1 단계;
원본 메시 지오메트리를 렌더링하는 제 2 단계;
상기 제 1 렌더 타겟 텍스쳐를 현재 렌더 타겟으로 설정하고, 상기 제 2 렌더 타겟 텍스쳐를 샘플링되어야 할 현재 텍스쳐로 설정하는 제 3 단계;
제 1 버텍스 및 제 1 픽셀 셰이더(first vertex and first pixel shader)와 상기 제 1 버텍스 리스트를 이용하여 렌더링하는 제 4 단계;
디폴트 렌더 타겟을 복원한 후, 상기 제 1 렌더 타겟 텍스쳐를 상기 현재 텍스쳐로 설정하는 제 5 단계; 및
제 2 버텍스 및 제 2 픽셀 셰이더(second vertex and second pixel shader)와 상기 제 2 버텍스 리스트를 이용하여 렌더링하는 제 6 단계를 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
A first step of generating first and second render target textures and first and second vertex lists;
A second step of rendering original mesh geometry;
A third step of setting the first render target texture as a current render target and the second render target texture as a current texture to be sampled;
A fourth step of rendering the first vertex and the first pixel shader and the first vertex list using the first vertex and the first pixel shader;
A fifth step of restoring the default render target and setting the first render target texture to the current texture; And
A second vertex and a second pixel shader; and a sixth step of rendering using the second vertex and second pixel shader and the second vertex list.
제 1 항에 있어서,
상기 제 1 및 제 2 렌더 타겟 텍스쳐는 마우스 드래그에 의한 다각형 선택 여부를 나타내기 위한 n x n 픽셀 블록이고, n은 홀수인 메시 지오메트리를 위한 데이터 처리 방법.
The method according to claim 1,
Wherein the first and second render target textures are nxn pixel blocks for indicating whether a polygon is selected by dragging a mouse and n is an odd number.
제 1 항에 있어서,
상기 제 1 버텍스 리스트의 버텍스는 메시 지오메트리 내에 존재하는 복수의 삼각형 각각에 대해 생성되며, 상기 버텍스는 3차원 모델 좌표에서 삼각형을 형성하는 3개의 버텍스 위치와 2차원 스크린 위치를 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
The method according to claim 1,
Wherein the vertex of the first vertex list is generated for each of a plurality of triangles present in the mesh geometry and wherein the vertices are generated for a mesh geometry comprising three vertex positions and a two dimensional screen position forming a triangle in three- Data processing method.
제 1 항에 있어서,
상기 제 2 버텍스 리스트의 버텍스는 메시 지오메트리 내에 존재하는 복수의 삼각형 각각에 대해 복수개씩 생성되며, 상기 버텍스는 3차원 모델 좌표 내에 1개의 버텍스 위치와 2차원 텍스쳐 좌표를 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
The method according to claim 1,
Wherein a vertex of the second vertex list is generated for each of a plurality of triangles present in the mesh geometry, the vertex comprising a vertex position and a two-dimensional texture coordinate within the three-dimensional model coordinate, Way.
제 1 항에 있어서, 상기 제 1 단계 이후에,
상기 제 1 및 제 2 렌더 타겟 텍스쳐의 각 픽셀을 기 설정된 값으로 클리어하는 단계를 더 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
2. The method of claim 1, wherein after the first step,
And clearing each pixel of the first and second render target textures to a preset value.
제 1 항에 있어서,
상기 제 2 단계 내지 제 6 단계는 마우스 드래그가 진행 중인 경우 반복하여 수행되는 메시 지오메트리를 위한 데이터 처리 방법.
The method according to claim 1,
Wherein the second to sixth steps are repeatedly performed when a mouse drag is in progress.
제 1 항에 있어서, 상기 제 4 단계는,
상기 제 1 버텍스 리스트를 상기 제 1 버텍스 셰이더로 전달하여 재 렌더링하는 단계;
2차원 공간에서 삼각형-직사각형 교차 테스트를 수행하는 단계;
상기 삼각형-직사각형 교차 테스트의 수행 결과가 성공이면 버텍스가 속하는 다각형을 나타내는 2차원 스크린 위치를 출력하는 단계; 및
상기 제 1 픽셀 셰이더에서 상기 직사각형을 구성하는 각 픽셀에 대해 솔리드 컬러를 생성하는 단계를 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
The method as claimed in claim 1,
Transferring the first vertex list to the first vertex shader and re-rendering the first vertex list;
Performing a triangle-rectangle intersection test in a two-dimensional space;
If the result of the triangle-rectangle intersection test is successful, outputting a two-dimensional screen position indicating a polygon to which the vertex belongs; And
And generating a solid color for each pixel of the rectangle in the first pixel shader.
제 7 항에 있어서,
상기 제 1 버텍스 셰이더 및 상기 제 1 픽셀 셰이더는 각각 다각형 선택 버텍스 셰이더 및 다각형 선택 픽셀 셰이더인 메시 지오메트리를 위한 데이터 처리 방법.
8. The method of claim 7,
Wherein the first vertex shader and the first pixel shader are polygon selection vertex shaders and polygon selection pixel shaders, respectively.
제 1 항에 있어서, 상기 제 6 단계는,
상기 제 2 버텍스 리스트를 상기 제 2 버텍스 셰이더로 전달하여 재 렌더링하는 단계; 및
상기 제 2 픽셀 셰이더에서, 상기 제 2 버텍스 셰이더에 의해 출력된 2차원 텍스쳐 좌표를 사용하여 상기 제 1 렌더 타겟 텍스쳐를 샘플링하는 단계를 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
The method as claimed in claim 1,
Transferring the second vertex list to the second vertex shader and re-rendering the second vertex shader; And
And in the second pixel shader, sampling the first render target texture using the 2D texture coordinates output by the second vertex shader.
제 1 항에 있어서,
마우스 드래그가 종료되면, 상기 제 1 렌더 타겟 텍스쳐의 내용을 상기 제 2 렌더 타겟 텍스쳐로 복사하는 단계; 및
상기 제 1 렌더 타겟 텍스쳐의 내용을 기초로 다각형 선택 또는 선택 해제에 대한 정보를 제공하는 단계를 더 포함하는 메시 지오메트리를 위한 데이터 처리 방법.
The method according to claim 1,
Copying the contents of the first render target texture to the second render target texture when the mouse drag ends; And
Further comprising providing information on polygon selection or deselection based on the content of the first render target texture.
제 1 항 내지 제 10 항 중 어느 한 항에 따른 메시 지오메트리를 위한 데이터 처리 방법을 수행하는 컴퓨터 프로그램 코드를 기록한 컴퓨터 판독 가능 저장 매체.11. A computer program code for performing a method of processing data for a mesh geometry according to any one of claims 1 to 10.
KR1020140173595A 2014-12-05 2014-12-05 Data processing method for mesh geometry and computer readable storage medium of recording the same KR20160068204A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140173595A KR20160068204A (en) 2014-12-05 2014-12-05 Data processing method for mesh geometry and computer readable storage medium of recording the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140173595A KR20160068204A (en) 2014-12-05 2014-12-05 Data processing method for mesh geometry and computer readable storage medium of recording the same

Publications (1)

Publication Number Publication Date
KR20160068204A true KR20160068204A (en) 2016-06-15

Family

ID=56134940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140173595A KR20160068204A (en) 2014-12-05 2014-12-05 Data processing method for mesh geometry and computer readable storage medium of recording the same

Country Status (1)

Country Link
KR (1) KR20160068204A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108010113A (en) * 2017-11-21 2018-05-08 成都品果科技有限公司 A kind of deep learning model based on pixel coloring device performs method
CN111882631A (en) * 2020-07-24 2020-11-03 上海米哈游天命科技有限公司 Model rendering method, device, equipment and storage medium
CN114693884A (en) * 2022-03-30 2022-07-01 北京银河方圆科技有限公司 Head surface drawing file generation method, rendering method and readable storage medium
CN116524104A (en) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 Rendering data processing method, device, equipment and storage medium
CN111882631B (en) * 2020-07-24 2024-05-03 上海米哈游天命科技有限公司 Model rendering method, device, equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140005388A (en) 2012-06-26 2014-01-15 삼성전자주식회사 Apparatus and method for processing rendering data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140005388A (en) 2012-06-26 2014-01-15 삼성전자주식회사 Apparatus and method for processing rendering data

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108010113A (en) * 2017-11-21 2018-05-08 成都品果科技有限公司 A kind of deep learning model based on pixel coloring device performs method
CN108010113B (en) * 2017-11-21 2021-07-27 成都品果科技有限公司 Deep learning model execution method based on pixel shader
CN111882631A (en) * 2020-07-24 2020-11-03 上海米哈游天命科技有限公司 Model rendering method, device, equipment and storage medium
CN111882631B (en) * 2020-07-24 2024-05-03 上海米哈游天命科技有限公司 Model rendering method, device, equipment and storage medium
CN114693884A (en) * 2022-03-30 2022-07-01 北京银河方圆科技有限公司 Head surface drawing file generation method, rendering method and readable storage medium
CN114693884B (en) * 2022-03-30 2023-10-13 优脑银河(湖南)科技有限公司 Method for generating head surface drawing file, rendering method, and readable storage medium
CN116524104A (en) * 2023-07-03 2023-08-01 腾讯科技(深圳)有限公司 Rendering data processing method, device, equipment and storage medium
CN116524104B (en) * 2023-07-03 2023-10-03 腾讯科技(深圳)有限公司 Rendering data processing method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
US11922534B2 (en) Tile based computer graphics
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
US7463261B1 (en) Three-dimensional image compositing on a GPU utilizing multiple transformations
KR102122454B1 (en) Apparatus and Method for rendering a current frame using an image of previous tile
US9275493B2 (en) Rendering vector maps in a geographic information system
Brabec et al. Shadow volumes on programmable graphics hardware
EP2831848B1 (en) Method for estimating the opacity level in a scene and corresponding device
US9208610B2 (en) Alternate scene representations for optimizing rendering of computer graphics
GB2476140A (en) Shadow rendering using stencil and depth buffers
CN111754381A (en) Graphics rendering method, apparatus, and computer-readable storage medium
US11842443B2 (en) Rendering three-dimensional objects utilizing sharp tessellation
Schütz et al. Software rasterization of 2 billion points in real time
RU2604674C2 (en) Systems and methods for creation of three-dimensional textured satin
JP2017062789A (en) Graphics processing apparatus and method for determining lod for texturing
KR20160068204A (en) Data processing method for mesh geometry and computer readable storage medium of recording the same
Jeschke et al. Rendering surface details with diffusion curves
Scholz et al. Real‐time isosurface extraction with view‐dependent level of detail and applications
EP3876205A1 (en) Image generation system and method
Döllner Geovisualization and real-time 3D computer graphics
JP6802129B2 (en) Information processing equipment, methods and programs
WILLCOCKS Sparse volumetric deformation
Leach A GPU-Based level of detail system for the real-time simulation and rendering of large-scale granular terrain
Timokhin et al. An Efficient Technology of Real-Time Modeling of Height Field Surface on the Ray Tracing Pipeline
Kang et al. An efficient simplification and real-time rendering algorithm for large-scale terrain
Eichelbaum et al. Fabric-like visualization of tensor field data on arbitrary surfaces in image space

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid