Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Demo Making    >>    goushad
   
 
 Gourad Shading Effect  Faker/S!P 01.09.94

Демонстрация эффекта затенения Gourad Shading.
How to code gouraud shading. Full pascal source included. Coded by The Faker/S!P. Fast iNjEcTioN By Access/Antares



14k 
 

Привет, чуваки ... Я тут отсутствовал некоторое время, а когда вернулся, застал дискуссию, в которой обсуждают и мой код и мою персону... Да, я специально постил некоторые спорные утверждения, которые, на мой взгляд, должны были способствовать конструктивному обсуждению и расширению кругозора тех людей, которые верят только тому, что пишут в компьютерных журналах и говорят "так называемые гуру". Подобная реакция на мой постинг мне совсем не нравится - некоторые парни реагировали весьма по-детски, в стиле "ты-придурок-гонишь-полную-чушь-и-мы-просто-ржем-над-тобой". Возможно, такие высказывания обусловлены возрастом моих юных оппонентов (или чем-то другим?). В общем, меня это сильно разозлило, и я ответил им в довольно-таки резкой форме. По большей части это просто грязь, и ламеры те, кто думает, что уличили меня в моей неправоте, а на самом деле - сами выставили себя на посмешище, когда пытались улучшить 16-битный код в 32-разрядном режиме. НИ ОДИН подобный код не работает, как я и заявлял ранее, хотя меня и пытались смешать с дерьмом некоторые "товарищи" с непомерно раздутыми амбициями. Еще одной темой, вызвавшей дискуссию, было мое утверждение о том, для алгоритма Gouraud shading требуется около 0.25 инструкций кода на каждый пиксел. Я написал это только потому, что был весьма удивлен, узнав, что некоторые люди до сих пор считают этот алгоритм черезчур "кодо-прожорливым" ... хотя я к тому времени уже и заменил его на Phong shading. Судя по ответам, которые я получил, некоторые подумали, что я подразумеваю 1/4 фрейма или что-то в этом роде, и они отвечали в духе "если-я-не-могу-этого-сделать-то-как-ОН-может- это-сделать-Здесь-какая-то-ошибка-или-я-распоследний-ламер". Удивительно, что некоторые _действительно_ считают, что их код оптимизирован настолько хорошо, что уже никто не сможет сделать его быстрее потому, что это просто невозможно. Однако, их ожидает удивление и разочарование. НИКОГДА не говорите, что ваш код оптимален, поскольку может придти вася пупкин и действительно сделать его быстрее - тем более, если это касается Pentium-инструкций, или каких-нибудь недокументированных фич. Вот, собственно, почему я и решил привести здесь свой код. Кроме того, вы можете найти релизы моих intro с исходниками и посмотреть на них. Вот тогда мы сможем продолжить дискуссию... И еще относительно предоставления исходного кода... Общеизвестно, что демо-группы обычно *НЕ* открывают свои исходники. В то время как некоторые американские демо-группы избалованы сетями и скоростными каналами, мы, европейцы начинали вообще без каких-либо туториалов - большинство из нас не имеет доступа в Internet и даже модема, как такового. Но, не будем об этом. В сегодняшней ситуации я считаю просто НЕОБХОДИМЫМ открыть исходники. И совсем не потому, что сегодня появилось множество новичков, которые, буквально, ТРЕБУЮТ (!) открыть код, потому, что он, видите-ли, им нужен. При этом они пользуются странным методом "мы будет чморить его, пока он не отдаст нам исходники". Мне наплевать на подобных ЛАМЕРОВ. Попытайтесь посмотреть на открытый код как на ПОДАРОК, а не как ваше _право_! Несмотря на все это, я и раньше выпускал релизы с исходниками, и, возможно, буду это делать и дальше... Кстати, а лично вы, например, с удовольствием открыли бы свои коды/приемы/трюки тем, кто пытается вас обосрать? Фактически, большинство таких людей - просто ламеры, не способные предоставить никаких доказательств того, что они действительно могут писать что-нибудь дельное. Любой дурак может трепаться о том, "как надо делаеть то или это", и, пофигу, прав оппонент или нет - флеймить с любым, кто имеет другое мнение. Я считаю, что такой поход приванивает фашизмом. Возьмем, к примеру, DOOM: многие 'клянутся', что они уже писали или пишут подобные вещи - я не знаю, кто выдвинул утверждение, что в DOOM есть отсечение лучей, но я держу пари, что парни из ID обсирались от смеха, читая подобные треды ;) Я думаю, что просто в их интересах дезинформировать общественность, поскольку им нужно продавать свою технологию и программы, или я неправ? (Это только мое предположение, а вовсе не обвинение, dudes). Конечно, вполне возможно заставить DOOM отсекать лучи, но я очень сомневаюсь, что вам при этом удастся достичь скорости оригинала. Почему я пришел к такому заключению? Потому, что не только я, но и некоторые из ведущих демо-кодеров убедились в этом на собственном опыте. (Возьмите, к примеру, программу ACK3D, в которой реализовано отсечение лучей. Но и она, как вы сами можете убедиться, далеко не дотягивает даже до скорости Wolf3D, и ее производительность при выводе пола/потолка намного хуже ..) Вы можете смеяться и дальше, но я, как демо-кодер, _всегда_ проверяю алгоритмы на их применимость и эффективность. И я выбираю не _самый_крутой_ алгоритм, а тот, который соответствует требованиям конкретной задачи. Например, я никогда не использую BSP-деревья - хотя я и прекрасно знаком с этим алгоритмом, но пока не вижу смысла в его применении. Что я, собственно, хочу этим сказать - не надо заглядывать в рот тем, кто сам называет себя Гуру. Просто попробуйте самостоятельно взглянуть на суть проблемы. Я знаю, что некоторые здесь опять поднимут вой либо по поводу вышесказанного, либо по поводу выловленных ими мелких багов в моей программе, либо из-за недостаточной оптимизации отдельных ASM-блоков. Да и хрен с ними - надо же им хоть чем нибудь заниматься ;) Я благодарю всех тех, кто знает меня, кто видел мои программы и поддерживает меня в этой группе - Вы знаете, кто Вы! Меня действительно не волнует, что вы будете делаеть с этим исходником, поскольку для меня он уже устарел ... Почему? Этот код был написан около года назад, я ничего в нем не оптимизировал кроме внутреннего цикла, так что, мой новый Phong сегодня гораздо быстрее :) Я привожу здесь лишь пример _работающего_ кода, а не "полностью документированный, хорошо-структурированный, ascii-разукрашенный код для защиты свой своей задницы" - мне и без этого есть, чем заняться. Подписано, Faker (S!P Internet PR) _____________________________________________________________ \ \ \ | "No one told you when to run, | in fake life: | | you missed the starting gun." | Stefan Ohrhallinger | | | St. Laurenz 54 | | SURPRISE! PRODUCTIONS, AUSTRIA | A-4950 ALTHEIM | | | | | "lightyears ahead!" | +43-732-2457-1025 | | __________________________________\_______________________\__ \_/____________________________________________________________/