문제

안녕하세요 여러분, Light/Laser Show 편집기 및 시뮬레이터를 개발하고 싶습니다. 물론이를 위해 그래픽 프로그래밍을 배울 것입니다. C# 및 XNA를 사용하는 것에 대해 생각하고 있습니다.

그래픽 프로그래밍의 어떤 측면이 내가 작업중 인 프로젝트를 감안할 때 조사하거나 집중 해야하는지 궁금했습니다. 나는 그래픽 프로그래밍을 처음 접했기 때문에 그것에 대해 많이 알지 못하지만 예를 들어 내가 볼 수있는 것을 상상합니다 (혹시?) 부피 조명이 되십시오.

예를 들어, 다양한 폭/색상의 '레이저'를 렌더링하는 실용적인 방법은 무엇입니까? 나는 단지 실린더를 그리고 셰이더를 바르기 위해 어딘가에 읽었습니다. 이것이 길인지 확인하고 싶습니다.

이것이 큰 프로젝트처럼 보인다는 것을 감안할 때, 나는 광원을 만들고 쉽게 조작 할 수 있도록 속성을 제공함으로써 시작하는 것에 대해 생각하고있었습니다. 나는 주어진 시간에 일정량의 조명 만 렌더링 할 수 있다는 것을 (MIS) 읽었습니다. 이것은 주변 조명에만 적용됩니까? 이러한 가능한 한계와 내가 사용할 대부분의 조명이 헤드 라이트 나 레이저와 같이 방향성이 될 것이라는 사실을 감안할 때, 이것들을 렌더링하는 다른 방법은 무엇입니까? 그게 부피의 조명이 될까요?

나는 그것에 뛰어 들기 전에 몇 가지를 명확하게하고 싶습니다. 나는 이것에 익숙하지 않기 때문에 아마도 단어를 최대한 활용하지 않았을 것입니다. 그래서 무언가가 이해가되지 않으면 알려주십시오. 감사합니다. 내 무지에 대해 죄송합니다.

도움이 되었습니까?

해결책

이에 대한 답은 디스플레이 시뮬레이션에 필요한 정교함 수준에 따라 다릅니다. 컴퓨터 그래픽은 궁극적으로 빛의 전송 시뮬레이션입니다. 이 시뮬레이션은 대기의 입자에 의해 시청자의 눈동자에 의해 편향된 레이저 조명의 일부를 계산하거나 선을 그리는 것만 큼 간단하게 계산하는 것만 큼 정교 할 수 있습니다. 실린더 효과를 시도하고 프로젝트에 효과가 있는지 확인하십시오. 더 정교한 것이 필요한 경우 셰이더 프로그래밍 (예 : NVIDIA CG 사용)과 언급 한대로 볼륨 음영을 살펴보십시오. 또한 후 처리 글로우 효과가 유용 할 수 있습니다. OpenGL의 경우 8의 한계가 있다고 생각합니까? 장면의 광원이지만, 자신의 음영 논리를 수행 하여이 한계를 해결할 수 있습니다.

다른 팁

글쎄, 그것이 조명 쇼 시뮬레이션을위한 것이라면 많은 맞춤형 조명 효과가 필요하다고 생각합니다. 따라서 XNA 또는 Straight Directx를 사용하기로 결정하더라도 셰이더 언어를 배우는 것과 다양한 프로그래밍 방법으로 시작하는 것이 가장 좋습니다. 그들을 사용하는 조명 효과. 원하는 레이저 조명의 유형을 재현하면 레이저를 나타내는 데 사용하려는 다각형을 실험 할 수 있습니다. (저는 개인 목적으로 일부 작업에서 실린더 방법을 사용했지만 직선 실린더가 귀하의 목적에 얼마나 잘 맞는지 잘 모르겠습니다).

더 빠르지 만 제한 사항 때문에 바닐라 하드웨어 조명을 사용하지 않는 것이 가장 좋습니다. 픽셀 셰이더는 작업을 도울 수 있습니다. 또한 휴대 성과 렌더링 방법의 선명도 때문에 OpenGL을 선택할 수 있습니다. OpenGL로 전환하기 전에 몇 년 동안 Direct3D에서 작업했습니다. OpenGL 기능과 상태는 학습하기 쉽고 렌더링 방법 (멀티 패스 렌더링)이 훨씬 명확합니다. C# (이 작업에 권장하지 않음)에서 코딩하려면 CSGL 라이브러리를 사용하여 OpenGL 기능에 액세스 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top