• 제목/요약/키워드: GPU Shader

검색결과 44건 처리시간 0.025초

OpenGL과 Unity간의 GPU를 이용한 Particle Simulation의 성능 비교 (Performance Comparison of Particle Simulation Using GPU Between OpenGL and Unity)

  • 김민상;성낙준;최유주;홍민
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제6권10호
    • /
    • pp.479-486
    • /
    • 2017
  • 최근 GPGPU를 이용하여 저하된 컴퓨터 성능 향상폭을 높일 수 있게 되었고, 이로 인하여 높은 연산을 요구로 하는 물리 기반의 실시간 시뮬레이션을 PC에서 구동할 수 있게 되었다. 물리 시뮬레이션에서 적용되는 물리 계산은 병렬 처리로 수행되어질 수 있으며, 최근 OpenGL 4.3 및 Unity4.0에서 지원되는 Compute shader를 통한 병렬 연산을 이용하면 효율적으로 구동할 수 있다. 본 논문에서는 다양한 플랫폼을 지원하는 디지털 콘텐츠 제작 툴인 Unity와 다양한 플랫폼에서 구동되어지는 OpenGL에서의 실시간 물리 시뮬레이션에서의 성능을 측정 및 비교한다. 본 논문에서 particle 시뮬레이션의 실험 결과 Unity를 이용한 particle 시뮬레이션이 OpenGL을 이용한 particle 시뮬레이션에 비해 최대 136.04% 빠른 성능을 보인다. 이를 통하여 추후 멀티 플랫폼을 지원하는 디지털 콘텐츠를 제작함에 있어 더 나은 개발 도구를 선정할 수 있을 것으로 기대된다.

대규모 점군 및 폴리곤 모델의 GLSL 기반 실시간 렌더링 알고리즘 (A Real-Time Rendering Algorithm of Large-Scale Point Clouds or Polygon Meshes Using GLSL)

  • 박상근
    • 한국CDE학회논문집
    • /
    • 제19권3호
    • /
    • pp.294-304
    • /
    • 2014
  • This paper presents a real-time rendering algorithm of large-scale geometric data using GLSL (OpenGL shading language). It details the VAO (vertex array object) and VBO(vertex buffer object) to be used for up-loading the large-scale point clouds and polygon meshes to a graphic video memory, and describes the shader program composed by a vertex shader and a fragment shader, which manipulates those large-scale data to be rendered by GPU. In addition, we explain the global rendering procedure that creates and runs the shader program with the VAO and VBO. Finally, a rendering performance will be measured with application examples, from which it will be demonstrated that the proposed algorithm enables a real-time rendering of large amount of geometric data, almost impossible to carry out by previous techniques.

워크 그룹 구성 변화에 따른 GPU 기반 천 시뮬레이션의 성능 분석 (The Performance Analysis of GPU-based Cloth simulation according to the Change of Work Group Configuration)

  • 최영환;홍민;이승현;최유주
    • 인터넷정보학회논문지
    • /
    • 제18권3호
    • /
    • pp.29-36
    • /
    • 2017
  • 오늘날 3D 다이내믹 시뮬레이션은 많은 산업들과 밀접한 관계를 가지고 있다. 과거에는 자동차 충돌, 건축물 분야에서 주로 사용되었으나 최근에는 영화나 게임 분야에도 물리 시뮬레이션이 중요한 역할을 하고 있다. 일반적으로 3D 물체를 사실적으로 표현하기 위해서는 많은 수학적 연산이 필요하기 때문에 기존의 CPU 기반의 응용 프로그램들은 이러한 많은 연산량을 실시간으로 처리하는데 무리가 있다. 최근 그래픽 하드웨어의 발전과 아키텍쳐의 개선으로 GPU는 기존의 렌더링 연산뿐만 아니라 범용 목적의 연산 기능을 제공하고 있고 이러한 GPU를 활용하는 연구가 활발히 진행되고 있다. 본 논문에서는 GPU를 이용한 천 시뮬레이션 수행시 수행 성능을 최적화하기 위하여, GPU 셰이더의 실행 환경 변화에 따른 천 시뮬레이션 알고리즘의 수행 성능의 변화를 분석하였다. GPU를 이용한 천 시뮬레이션은 GLSL 4.3의 Compute shader를 사용하여 스프링 중심 알고리즘과 노드 중심 알고리즘을 PC기반으로 구현하였고, GLSL Compute shader의 다양한 워크 그룹 (Work Group) 크기와 차원 분배에 따른 연산 속도의 변화를 비교 분석하였다. 실험은 5,000 프레임까지 10회 반복 수행하여 FPS(Frame Per Second)의 평균을 구하여 진행하였다. 실행결과, 노드 중심의 알고리즘이 오히려 스프링 중심의 알고리즘 보다 빠른 수행속도를 보여 주었다.

Simulation of Deformable Objects using GLSL 4.3

  • Sung, Nak-Jun;Hong, Min;Lee, Seung-Hyun;Choi, Yoo-Joo
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제11권8호
    • /
    • pp.4120-4132
    • /
    • 2017
  • In this research, we implement a deformable object simulation system using OpenGL's shader language, GLSL4.3. Deformable object simulation is implemented by using volumetric mass-spring system suitable for real-time simulation among the methods of deformable object simulation. The compute shader in GLSL 4.3 which helps to access the GPU resources, is used to parallelize the operations of existing deformable object simulation systems. The proposed system is implemented using a compute shader for parallel processing and it includes a bounding box-based collision detection solution. In general, the collision detection is one of severe computing bottlenecks in simulation of multiple deformable objects. In order to validate an efficiency of the system, we performed the experiments using the 3D volumetric objects. We compared the performance of multiple deformable object simulations between CPU and GPU to analyze the effectiveness of parallel processing using GLSL. Moreover, we measured the computation time of bounding box-based collision detection to show that collision detection can be processed in real-time. The experiments using 3D volumetric models with 10K faces showed the GPU-based parallel simulation improves performance by 98% over the CPU-based simulation, and the overall steps including collision detection and rendering could be processed in real-time frame rate of 218.11 FPS.

병렬 응용프로그램 실행 시 GPU 구조에 따른 성능 분석 (Performance Evaluation of the GPU Architecture Executing Parallel Applications)

  • 최홍준;김철홍
    • 한국콘텐츠학회논문지
    • /
    • 제12권5호
    • /
    • pp.10-21
    • /
    • 2012
  • 통합형셰이더 코어 구조 개발 이후 GPU는 그래픽스 전용 연산장치에서 범용 연산장치로 발달하고 있다. 특히, 병렬 응용 프로그램들은 병렬화된 하드웨어 구조를 효과적으로 활용할 수 있기 때문에, GPU를 활용하여 병렬 응용프로그램들을 실행시키는 기법이 주목을 받고 있다. 하지만, 현재의 GPU 구조는 비그래픽스 응용프로그램을 실행하는데 있어서 병렬성을 충분히 확보하지 못하다는 한계를 가지고 있기 때문에, 이를 해결하기 위해 GPU 구조는 빠르게 변화하고 있다. 본 논문에서는 GPU 구조의 개발 방향을 살펴보기 위해, 비그래픽스 병렬 응용프로그램들을 수행하는 경우에 코어 개수 및 동작 주파수 등의 하드웨어구조에 따른 GPU의 성능을 상세히 분석하고자 한다. 실험 결과, 코어 개수가 30에서 192로 늘어나고 동작주파수가 325MHz에서 450MHz로 증가함에 따라 GPU 성능은 28.9%에서 125.8%, 4.4%에서 16.2% 각각 향상되는 반면 성능 향상 효율성은 감소하는 것을 볼 수 있다. 성능 향상 효율성 감소의 주된 원인은 향상된 연산 능력에 맞추어 증가된 데이터 요구를 메모리가 적절하게 처리하지 못하기 때문이다. 결과적으로 GPU의 성능 향상 효율성을 더욱 높이기 위해서는 연산 능력 향상과 더불어 시스템 자원들 또한 GPU 구조에 맞게 변경되어야 함을 구체적인 실험을 통해 알 수 있다.

프랙탈과 셰이더 인스턴싱 기법을 이용한 자연스러운 잔디의 실시간 렌더링 (Real-time Rendering of Realistic Grasses Using Fractal and Shader-Instancing)

  • 김진모;조형제
    • 한국멀티미디어학회논문지
    • /
    • 제13권2호
    • /
    • pp.298-307
    • /
    • 2010
  • 게임이나 실시간 시뮬레이션 시스템과 같은 분야에서 잔디는 광범위한 지표면을 구성하는 중요한 요소 중 하나이다. 실제 넓은 지형에 자라나는 많은 수의 잔디를 효율적으로 렌더링 하는 작업은 결코 쉬운 일이 아니다. 이러한 문제를 해결하려면 모델의 질과 계산 비용 절약의 두 가지 문제에 늘 직면하게 된다. 본 논문에서는 이러한 두 가지 문제를 해결하기 위한 방안으로 프랙탈 이론과 인스턴싱 기법을 도입하여 자연스러운 잔디의 효율적인 표현 방법을 제안한다. 기존의 잔디 표현의 경우 동일한 모델을 반복적으로 적용하였지만 본 연구에서는 프랙탈의 자기 유사성의 기본 이론을 활용하되 지형의 성질과 빛의 양을 인자로 도입하여 조건에 맞는 다양한 잔디의 자연스러운 표현 방법을 설계하고 또한 많은 수의 잔디 모델을 실시간으로 렌더링하기 위하여 GPU를 활용한 셰이더 인스턴싱 기법을 적용한다.

GLSL 4.3을 사용한 파티클 시스템 구현 (Implementation of Particle System Using GLSL 4.3)

  • 최영환;홍민;최유주
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 춘계학술발표대회
    • /
    • pp.189-191
    • /
    • 2016
  • 실시간 물리 기반 3D 시뮬레이션에서 연산속도는 매우 중요한 요소이다. 객체의 움직임이나 변형과 같은 현상들은 복잡한 연산을 통해서 계산되기 때문에 일반적으로 시뮬레이션의 정확도와 연산속도는 반비례 관계에 있다. 현재 출시되고 있는 대부분의 게임에서는 물체의 움직임을 정확하게 표현하기보다 연산량을 줄이기 위해 물체의 움직임이나 변형을 비슷하게 표현하는데 중점을 두고 있다. 본 논문에서는 이러한 문제를 해결하기 위하여 OpenGL 4.3의 Compute shader를 사용하여 다이내믹 시뮬레이션의 연산 작업을 GPU 병렬처리로 처리하였다. Compute shader에서 파티클의 움직임을 계산하고 Shader storage buffer object에 저장하고 파티클들의 작업량을 적절한 Workgroup의 크기로 나누어 할당하여 최적의 처리속도를 제공하도록 구현하였다. Compute shader에서 파티클의 움직임을 표현하기 위해서 수치해법 중의 하나인 Euler method를 사용하였으며 실험 결과 파티클의 수가 4,194,304개일 때 CPU 방법에 비해 약 182배 빠른 연산속도 결과를 보였다. 추후 Compute shader를 활용하여 연산량이 많은 분야에 적용 가능할 수 있을 것으로 기대한다.

GPU 기반의 Time-Variant 볼륨 렌더링 프로그램과 사용자 친화적인 전이함수 에디터의 설계 및 구현 (Design and Implementation of GPU Based Time-Variant Volume Rendering Program and User-Friendly Transfer Function Editor)

  • 이중연;허영주;구기범
    • 한국HCI학회:학술대회논문집
    • /
    • 한국HCI학회 2007년도 학술대회 1부
    • /
    • pp.1025-1030
    • /
    • 2007
  • 여러 학계와 산업계로부터 인체영상과 같은 정적인 볼륨 데이터뿐만 아니라, 유체 흐름과 같은 동적으로 움직이는 Time-Variant 볼륨 데이터에 대한 실시간 렌더링의 요구가 계속되고 있다. 일반적으로 Time-Variant 데이터는 그 크기가 정적 볼륨 데이터의 수배에서 수백 배에 이르러, 이를 실시간으로 가시화하는 데에 많은 어려움이 있어왔다. 한편, PC 그래픽스 하드웨어의 급격한 발전에 따라 슈퍼컴퓨터나 다수의 컴퓨터들을 이용한 병렬/분산 렌더링으로나 가능했던 Time-Variant 볼륨 데이터의 실시간 볼륨 렌더링을 한대의 일반 PC에서 수행하려는 시도가 계속되고 있다. GPU의 꼭지점 및 프래그먼트 쉐이더(vertex & fragment shader)는 수치 계산에 최적화된 벡터 연산과 사용자 프로그래밍 기능으로 빠른 볼륨 렌더링을 일반 PC에서도 가능하게 했다. 본 논문에서는 GPU를 이용해서 Time-Variant 볼륨 데이터를 빠르게 가시화하고, 이렇게 개발한 GPU 볼륨 렌더링 프로그램을 사용자가 사용하기 편리하도록 사용자 친화적인 유저 인터페이스를 설계하고 구현하였다. 특히, 시간에 따라 동적으로 변화해야 하는 전이함수를 최대한 편리하게 생성할 수 있도록 전이함수 에디터에 중점을 두었다.

  • PDF

브릭 정점을 이용한 GPU 기반 볼륨 광선투사법 가속화 (Accelerating GPU-based Volume Ray-casting Using Brick Vertex)

  • 채수평;신병석
    • 한국컴퓨터그래픽스학회논문지
    • /
    • 제17권3호
    • /
    • pp.1-7
    • /
    • 2011
  • 최근에 GPU 기반의 볼륨 광선 투사법을 가속화하는 기법들이 많이 연구되고 있다. 하지만 이런 기법들은 CPU-GPU간 데이터 전송 시 병목 현상을 야기하고 계층구조를 표현하기 위한 추가적인 GPU 메모리 공간이 필요할 뿐만 아니라 불투명도 전이 함수가 변경되었을 때 실시간에 대응하지 못하는 문제점들이 발생할 수 있다. 본 논문에서는 이러한 문제점들을 해결하기 위해 GPU 기반의 효율적인 빈 공간 도약 기법을 제안한다. 브릭(brick) 안에 포함되는 복셀들의 최대 밀도 값을 하나의 정점에 저장하고 불투명도 전이 함수에 의하여 투명하다고 판별된 정점들을 기하 쉐이더에서 삭제한다. 이 정점들을 랜더링 시간에 기하 쉐이더의 입력 값으로 사용해 투명하지 않은 영역의 바운딩 박스를 만들어 광선이 효과적으로 진행하도록 한다. 생성된 정점들은 렌더링 중에 시점의 변화에 무관하게 사용할 수 있지만 불투명도 전이 함수가 변경되면 투명하지 않은 정점들을 다시 생성해야 한다. 이는 기하 쉐이더를 통해서 GPU 안에서 고속으로 생성되기 때문에 대화식 처리가 가능하다. 제안하는 방법은 기존 광선 투사법의 결과와 동일한 영상을 생성하며 렌더링 속도는 기존의 방법에 비해 최대 10배 이상 향상되었다.

Real-Time Animation of large Crowds

  • Kang, In-Gu;Han, Jung-Hyun
    • 한국HCI학회:학술대회논문집
    • /
    • 한국HCI학회 2007년도 학술대회 3부
    • /
    • pp.318-321
    • /
    • 2007
  • This paper proposes a GPU-based approach to real-time skinning animation of large crowds, where each character is animated independently of the others. In the first pass of the proposed approach, skinning is done by a pixel shader and the transformed vertex data are written into the render target texture. With the transformed vertices, the second pass renders the large crowds. The proposed approach is attractive for real-time applications such as video games.

  • PDF