Basit cevap, onları her çağrı araması arasında değiştirmektir. Bir gölgelendirici ayarlayın, bir çaydanlık çizin, başka bir gölgelendirici ayarlayın, başka bir çaydanlık çizin.
Bulanıklaştırma, ışıma vb. Gibi tek bir nesneye birden fazla gölgelendirici uygulamanız gereken daha karmaşık şeyler için. Temel olarak doku (lara) dönüştürülmüş her şeye sahipsin. Ardından, başka bir gölgelendirici kullanırken, uygulanmış dokuyla tüm ekranınızda bir dörtgen yaratırsınız.
Örneğin, bir parlama efekti oluşturmak istiyorsanız, önce normal olarak parlamayan sahnenizi ve ardından bir doku üzerinde parlamak istediğiniz öğelerin yalnızca renkli siluetini oluşturup ardından bir bulanıklık gölgelendiricisine geçin ve parlamayan sahnenizin üzerine tutturulmuş o doku ile dörtlü.
Sahneyi aydınlatma olmadan yaptığınız ve daha sonra ekran boşluğuna uyguladığınız Erteleme gölgeleme adı verilen başka bir teknik var . Temel amaç, piksel aydınlatma başına masrafı azaltmaktır.
Normalde, ekrana yerleştirilmiş bir renk arabelleği oluşturursunuz. Ertelenmiş gölgelemeyle bunun yerine bir renk tamponunun yanı sıra bir gölgelendirici geçidinde normal ve derinlik tamponunu da oluşturursunuz (normal vektörleri ve derinliği normal ve yükseklik eşlemesinde olduğu gibi bir dokuda saklayabilirsiniz).
Bu, her piksel için saydam olmayan geometrinin en yakın parçasının (gözle derinlik veya mesafe) rengini ve normalini bildiğiniz anlamına gelir. Bu nedenle, oluşturduğunuz her nesnenin görünen pikseline değil, ekrandaki her piksele ışık uygulayabilirsiniz. Sahne önden arkaya tam olarak gösterilemiyorsa, bazı nesnelerin diğer nesnelerin üzerine çizileceğini unutmayın.
Gölgeler için, sadece derinlik tamponunu ışığın bakış açısından oluşturursunuz, daha sonra ışığın çarptığı yeri bulmak için bu derinlik bilgisini kullanırsınız. Buna gölge haritalama denir (geometri silüeti oluşturan ve onu sıkıştıran gölge hacimleri adı verilen başka bir yaklaşım daha vardır, ancak yine de gölgelendiriciler kullanacaksınız.).
Daha modern OpenGL (3.0+) ile, eklenmiş Renderbuffers Nesnelerini içeren bir Framebuffer Nesnesi kullanırsınız . Oluşturucular bu yana bir doku gibi muamele edilebilir. Birden fazla farklı renderleyiciye 1 gölgelendiricinin renderlenmesi gibi şeyler yapabilirsiniz (bu nedenle dokunuzu daha sonra normallerinizden sonra parıldayan bileşenlere dönüştürmeniz gerekmez ) ancak temel uygulama hala aynıdır.
Ayrıca, genel giderlerden tasarruf etmek için gölgelendirici anahtarlarının sayısını olabildiğince en aza indirmek istenir. Böylece bazı motorlar her şeyi aynı malzemeyle birlikte gruplayacaktır, böylece hepsi bir kerede çizilebilir.