Ascii Soft-Render

Esse é um experimento utilizando gl-matrix e o algoritmo desenhador de linhas de Bresenham para desenhar na tela as arestas de um objeto 3D simples.

Basicamente a gente cria uma matriz de projeção de camera e usa ela para projetar o começo e fim de cada aresta do mesh em um "plano". A gente então usa o algorítmo de Bresenham pra unir os pontos e tadá! O resultado é uma coisa assim:

                                                                                                                             
    #                   #                                                                                   #                # 
    #                     #                                                                                  #                 #
                          #                                                                                 #                  #
                   ###########           ##########                        ##########          #########   #                    
                   #        ##           #        #                        #        #          #       #  #                     
                   #         #           #        #                        #        #          #       #  #                     
                    #        ##          #        #                        #        #          #       # #                      
                    #        # #         #        #              #         #        #          #      # #             #         
                    #         # #        #        #             # #        #        #          #      ##             # #        
                    #         #  #        #       #            #   #       #       #          #       ##            #  #        
                     #        #   #       #       #           #     #      #       #          #       #           ##    #       
                     #        #   #       #       #          #   #   #     #       #          #      ##          #   #  #       
                     #        #    #      #       #         #   ##    #    #       #          #     # #         #   ##   #      
                     #        #############       #         #   # #   #    #       #          #     # #        #   # #    #     
                     #               #             #       #   ## #    #   #       ############    # #        #   ##  #   #     
                      #               #############################################################  #      ##      ###    #    
                      #               #            #     #               ##                       #  #     #               #    
                      #             #####          #    #    ########     #             #####     #  #    #    ########     #   
                      #        ##### #  #          #   ###  #        #  ###        #####    #      # #   ###  #        #  ##    
                      #        #     #   #         #      ##          ##  #        #        #      # #      ##          ##      
                       #       #    #    #         #                      #        #        #      # #                          
                       #       #    #    #         #                      #        #        #      ##                           
                       #        #   #     #        #                      #       #         #      ##                           
                       #        #  #      #        #                      #       #         #       #                           
                        #       #  #      #        #                      #       #         #    ####                           
                        #       #  #       #    ####                      #########         #####   #                           
                        ######### #        #####                                                    #                           
                                  #                                                                 #                           
                                  #                                                                 #                           
                                 #                                                                   #                          
                                 #                                                                   #                          
                                 #                                                                   #                          
                                #                                                                    #                          
                                #                                                                    #                          
                                #                                                                     #                         
                               #                                                                      #                         
                               #                                                                      #                         
                               #                                                                      #                         
    ###############           #                                                                       #                         
                   ######################################################################################                       
                              #                                                                        # #######################
                             #                                                                         #                        
    ######                   #                                                                         #                        
          #######            #                                                                         #                      ##

É mais interessante ao vivo