GLSL Shader Penguji

Apa itu?

Ini adalah program kecil yang saya tulis untuk membantu saya merancang beberapa efek pencahayaan untuk saya physxDraw Program. Hal ini perlahan-lahan berkembang menjadi test bed GLSL shader untuk Linux. Saya telah mencoba Shader Designer di Linux tapi aku punya beberapa masalah dengan cara set up kamera. Juga, saya menggunakan tema desktop gelap (mirip dengan gaya halaman ini) dan saya tidak bisa melihat kode. Ditambah Aku penggemar besar dari gvim untuk mengedit teks atau kode, jadi aku menghindari editor dan menggunakannya sebagai test bed. Tapi aku tidak bisa mendapatkan sekitar masalah kamera, jadi aku akhirnya menulis sistem saya sendiri.

Aku mengakui ini adalah aplikasi yang sangat primitif, dan saya tidak pernah menggunakan salah satu alat pro seperti NVIDIA Composer FX atau RenderMonkey AMD / ATI karena mereka tidak berjalan di Linux. Jadi saya tidak benar-benar mencoba untuk meniru mereka, saya hanya menulis sesuatu yang bekerja untuk saya.

Teaser gambar di atas menunjukkan GUI dasar untuk shaderDev . The "Shaders" panel memungkinkan Anda untuk memuat dalam jumlah vertex dan fragmen shader dan kompilasi mereka menjadi satu program. Hal ini juga akan memuat nilai-nilai seragam non-reserved dan menetapkan nilai-nilai mereka. Antarmuka nilai pengaturan cukup kikuk - aku mungkin kembali di masa depan. Tapi itu pekerjaan yang cepat dan kotor. Gambar menunjukkan saya per pixel phong pencahayaan shader dengan tekstur untuk warna diffuse.

Gambar ini menunjukkan setup yang sama seperti sebelumnya, tetapi menggunakan pipa OpenGL tetap. Perhatikan bagaimana berbeda shading adalah! Tekstur masker kayu beberapa efek diskritisasi, dan shader saya memiliki lebih dari sifat reflektif dari kayu dipoles. Aku awalnya merancang shader ini untuk digunakan dalam physxDraw , tapi ternyata pada kinerja layar penuh tetes dengan faktor 10!

Gambar ini juga menunjukkan panel pencahayaan, yang memungkinkan Anda mengatur semua properti dari lampu. Panel yang tersisa ditampilkan di bawah ini dan memungkinkan Anda untuk menentukan bahan, tekstur, dan bentuk.

Apa yang perlu dilakukan

ShaderDev masih jauh dari selesai. Ada banyak pekerjaan yang harus dilakukan. Berikut adalah beberapa hal yang perlu perbaikan dan beberapa fitur diimplementasikan.

  • bentuk yang lebih, termasuk pemuatan jerat (mungkin file OFF).
  • Termasuk dalam panel "Shapes" beberapa cara untuk mengedit tekstur koordinat set.
  • Pemuatan vertex atribut dari file untuk input ke shader.
  • antarmuka yang lebih baik untuk menetapkan nilai-nilai nilai seragam.
  • kontrol lebih negara OpenGL, seperti fungsi pencampuran dan fungsi tes mendalam.
  • Perlu cara untuk menarik lampu directional.
  •  

Bug dikenal:

  • tidak dapat mengatur variabel seragam sampai program yang sedang digunakan. Harus dapat melakukannya jika program tersebut valid.
  • Tekstur tidak ditampilkan hingga nilai minification filter berubah.
  • Program sesekali crash saat melepas tekstur dari tempat kejadian.
  • Ikon untuk cahaya bertekstur ketika texturing diaktifkan.

Mencobanya!

Kode untuk shaderDev tersedia di sini . Anda juga akan membutuhkan library berikut multi-platform:

  • FLTK . Saya menggunakan versi 1.1.7.
  • MagickWand dari ImageMagick.
  • SCons untuk membangun.
  • OpenGL 2.0 dan mengenyangkan, tentu saja.

Aku hanya diuji ini pada Ubuntu Linux Gutsy , tapi saya pikir itu harus bekerja dengan baik pada platform Linux lainnya.

Asli artikel oleh Jacobo Bibliowicz. Seluruh hak cipta

Sumber : http://www.dgp.toronto.edu/~jacky/shaderdev.html