Khiêu chuyển đáo nội dung

GLSL

Duy cơ bách khoa, tự do đích bách khoa toàn thư
GLSL cơ bổn khuông giá

GLSL-OpenGL Shading LanguageDã xưng tácGLslang,Thị nhất cá dĩC ngữ ngônVi cơ sở đíchCao giaiTrứ sắc ngữ ngôn.Tha thị doOpenGL ARBSở kiến lập, đề cung khai phát giả đốiHội đồ quản tuyếnCanh đa đích trực tiếp khống chế, nhi vô nhu sử dụng hối biên ngữ ngôn hoặc ngạnh thể quy cách ngữ ngôn.

Bối cảnh[Biên tập]

Tùy trứ cận niên lai hội đồ tạp đích tiến bộ, Để tằngĐỉnh điểm( vertex ) hòa phiến đoạn ( fragment ) đích tuyển nhiễm quản tuyến trung gia nhập canh đa canh cụ đạn tính đích tân công năng. Giá cá tằng thứ đích khả biên trình tính do phiến đoạn hòaĐỉnh điểm trứ sắc khíThật hiện.

Tối sơ giá cá công năng thị dĩ hối biên ngữ ngôn soạn tả trứ sắc khí lai đạt đáo, bất trực quan nhi phục tạp. OpenGL ARB kiến lập liễu OpenGL trứ sắc ngữ ngôn, vi GPU đích trình thức thiết kế đề cung canh gia trực quan đích phương pháp, đồng thời duy hộ liễu OpenGL nhất hướng đích khai phóng tiêu chuẩn.

Tối sơ tác vi OpenGL 1.4 đích sáp kiện, hậu lai doOpenGL ARB(Anh ngữ:OpenGL Architecture Review Board)Tại 2004OpenGL2.0 hạch tâm trung chính thức nạp nhập, thị tự 1992 niênOpenGL1.0 phát bố khởi đệ nhất cáOpenGLĐích đại cải bản.

Sử dụng GLSL hữu như hạ hảo xử:

  • Cụ hữuKhóa bình đàiĐích tương dung tính, bao quátMacintosh,WindowsHòaLinuxĐẳng tác nghiệp hệ thống.
  • Biên tả đích trứ sắc khí khả dĩ tại sở hữu chi viện OpenGL trứ sắc ngữ ngôn đích hội đồ tạp thượng sử dụng.
  • Duẫn hứa hán thương vi đặc định đích hội đồ tạp giá cấu thiết kế tối giai hóa đích đại mã.

Tường tế tư liêu[Biên tập]

Tư liêu loại hình[Biên tập]

OpenGL trứ sắc ngữ ngôn quy cách định nghĩa liễu 22 cá cơ bổn tư liêu loại hình, hữu ta dụng pháp dữCTương đồng, kỳ tha đích thị hội đồ xử lý khí đặc hữu đích.

  • void – dụng ô một hữu phản hồi trị đích hàm thức
  • bool – điều kiện loại hình, kỳ trị khả dĩ thị chân hoặc giả
  • int – đái phụ hào chỉnh sổ
  • float – phù điểm sổ
  • vec2 – 2 cá phù điểm sổ tổ thành đích hướng lượng
  • vec3 – 3 cá phù điểm sổ tổ thành đích hướng lượng
  • vec4 – 4 cá phù điểm sổ tổ thành đích hướng lượng
  • bvec2 – 2 cá bố lâm tổ thành đích hướng lượng
  • bvec3 – 3 cá bố lâm tổ thành đích hướng lượng
  • bvec4 – 4 cá bố lâm tổ thành đích hướng lượng
  • ivec2 – 2 cá chỉnh sổ tổ thành đích hướng lượng
  • ivec3 – 3 cá chỉnh sổ tổ thành đích hướng lượng
  • ivec4 – 4 cá chỉnh sổ tổ thành đích hướng lượng
  • mat2 – phù điểm sổ đích 2X2 củ trận
  • mat3 – phù điểm sổ đích 3X3 củ trận
  • mat4 – phù điểm sổ đích 4X4 củ trận
  • sampler1D – dụng lai tồn thủ nhất duy văn lý đích cú bính ( handle ) ( hoặc: Thao tác, tác danh từ giải. )
  • sampler2D – dụng lai tồn thủ nhị duy văn lý đích cú bính
  • sampler3D – dụng lai tồn thủ tam duy văn lý đích cú bính
  • samplerCube – dụng lai tồn thủ lập phương ánh xạ văn lý đích cú bính
  • sampler1Dshadow – dụng lai tồn thủ nhất duy thâm độ văn lý đích cú bính
  • sampler2Dshadow – dụng lai tồn thủ nhị duy thâm độ văn lý đích cú bính

Vận toán tử[Biên tập]

OpenGL trứ sắc ngữ ngôn đề cung loại tự ôC ngữ ngônĐích vận toán tử. Cấp khai phát giả biên tả trứ sắc khí đích linh hoạt tính. GLSL bao hàm liễuC hòa C++ vận toán tử,Trừ liễu vị nguyên vận toán tử hòaChỉ tiêuDĩ ngoại.

Hàm thức hòa khống chế kết cấu[Biên tập]

Loại tự ôC ngữ ngôn,GLSL chi viện hồi quyển hòa phân chi, bao quát if, else, if/else, for, do-while, break, continue đẳng.

Chi viện sử dụng giả định nghĩa hàm thức, thả các chủng thường dụng đích hàm thức dã dĩ nội kiến. Giá dã tựu nhượng hội đồ tạp chế tạo thương, năng cú tại ngạnh thể tằng thứ thượng tối giai hóa giá ta nội kiến đích hàm thức. Hứa đa hàm thức dữ C ngữ ngôn tương đồng, như exp() dĩ cập abs(), kỳ tha hội đồ biên trình đặc hữu đích, như smoothstep() dĩ cập texture2D().

Biên dịch hòa chấp hành[Biên tập]

GLSL trứ sắc khí bất thị độc lập đích ứng dụng trình thức; kỳ nhu yếu sử dụngOpenGLAPI đích ứng dụng trình thức. C, C++, C#, Delphi hòa Java giai chi việnOpenGLAPI, thả chi viện OpenGL trứ sắc ngữ ngôn.

GLSL trứ sắc khí bổn thân chỉ thị giản đan đích tự xuyến tập, giá ta tự xuyến tập hội truyện tống đáo ngạnh thể hán thương đích khu động trình thức, tịnh tòng trình thức nội bộ đích OpenGL API tiến nhập điểm biên dịch. Trứ sắc khí khả tòng trình thức nội bộ hoặc độc nhập thuần văn tự đương lai tức thời kiến lập, đãn tất tu dĩ tự xuyến hình thức truyện tống đáo khu động trình thức.

Dụng dĩ biên dịch, liên kết tịnh truyện tống tham sổ đáo GLSL trình thức đích API tập, dĩ tại tam cá OpenGL khoách triển trung quy định, thả tức tương thành viOpenGL 2.0(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán) hạch tâm đích nhất bộ phân. Giá ta API khả tại dĩ hạ khoách triển trung trảo đáo:

GLSL đỉnh điểm trứ sắc khí đích giản đan phạm lệ[Biên tập]

voidmain(void)
{
gl_Position=ftransform();
}

GLSL phiến đoạn trứ sắc khí đích giản đan phạm lệ[Biên tập]

voidmain(void)
{
gl_FragColor=vec4(1.0,0.0,0.0,1.0);
}

Công cụ[Biên tập]

GLSL trứ sắc khí khả dĩ sự tiên kiến lập hòa trắc thí, hiện hữu dĩ hạ GLSL khai phát công cụ:

  • RenderMonkey(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán) - giá cá nhuyễn thể thị do ATI chế tác đích, đề cung giới diện dụng dĩ kiến lập, biên dịch hòa trừ thác GLSL trứ sắc khí, hòa DirectX trứ sắc khí nhất dạng. Cận năng tại Windows bình đài thượng chấp hành.
  • GLSLEditorSample - tại Mac OS X thượng, tha thị mục tiền duy nhất khả dụng đích trình thức, kỳ đề cung trứ sắc khí đích kiến lập hòa biên dịch, đãn bất năng trừ thác. Tha thị cocoa ứng dụng trình thức, cận năng tại Mac OS X thượng chấp hành.
  • Lumina(Hiệt diện tồn đương bị phân,Tồn vuHỗ liên võng đương án quán) - Lumina thị tân đích GLSL khai phát công cụ. Kỳ sử dụng QT giới diện, khả dĩ khóa bình đài.

Tham khảo văn hiến[Biên tập]

Ngoại bộ liên kết[Biên tập]

Tham kiến[Biên tập]