sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Question] Is it possible to set the face.normal?

    Scheduled Pinned Locked Moved Developers' Forum
    23 Posts 5 Posters 2.7k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • PixeroP Offline
      Pixero
      last edited by

      Is it possible in SU to set the face.normal to a custom value?
      Something like face.normal = customvector.
      Useage would be to make certain faces have the same lighting as others even though they are not facing in the same direction. (Like when making grass planes or trees.)
      Well, is it possible?

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        nope. Only thing you can do is reverse it.

        Thomas Thomassen β€” SketchUp Monkey & Coding addict
        List of my plugins and link to the CookieWare fund

        1 Reply Last reply Reply Quote 0
        • PixeroP Offline
          Pixero
          last edited by

          😞 And I just came up with this great idea for a plugin...
          Well, well. SketchUp IS beginning to look more and more old...

          And I guess there is no workaround? Like changing shadowinfo per face or setting a new normal through the vertices?

          1 Reply Last reply Reply Quote 0
          • Chris FullmerC Offline
            Chris Fullmer
            last edited by

            I know there are people on this forum who could probably help you hack into SU and implement your own shaders πŸ˜„

            Though that is against the installation agreement terms...

            Chris

            Lately you've been tan, suspicious for the winter.
            All my Plugins I've written

            1 Reply Last reply Reply Quote 0
            • PixeroP Offline
              Pixero
              last edited by

              Even though shaders would be very nice to have in SU this isnt about that at all.
              If we could set the normal of a face to a custom value (like for example 0,0,1) we could make better looking grass and trees since faces pointing in different directions wouldnt get different shades where they intersect.
              So if there is a way please tell.

              As a sidenote:

              @unknownuser said:

              I know there are people on this forum who could probably help you hack into SU and implement your own shaders
              Though that is against the installation agreement terms...
              Chris

              What about Adams LightUp? As far as I understand he is using his own OpenGL solution.
              Wouldnt that be breaking the agreement?
              If not why don't someone smart make a OpenGL implementation plugin for SU that gives us control to do more advanced stuff?

              1 Reply Last reply Reply Quote 0
              • Chris FullmerC Offline
                Chris Fullmer
                last edited by

                I believe that Adam is exporting geometry to his own renderer, then rendering his own textures for every surface, then applying all those rendered images back into the model, baking the entire model.

                That is my understanding anyhow.

                Chris

                Lately you've been tan, suspicious for the winter.
                All my Plugins I've written

                1 Reply Last reply Reply Quote 0
                • Q Offline
                  qpik
                  last edited by

                  During my research for improving raytesting plugin for SU
                  (http://forums.sketchucation.com/viewtopic.php?f=323&t=21077&st=0&sk=t&sd=a)
                  I've found out that Ruby supports OpenGL.

                  I mixed an example and library from Ruby installation.
                  You can run this example in SU (unzip 4 files to Plugins folder).


                  Example of Ruby-OpenGL with library.

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    and you managed to use that within SU?

                    Thomas Thomassen β€” SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • Q Offline
                      qpik
                      last edited by

                      So far I managed to run the example above. Give me some time πŸ˜„

                      1 Reply Last reply Reply Quote 0
                      • J Offline
                        Jim
                        last edited by

                        I don't really know, but OpenGL must have hooks, or act as a server because of the existence of software such as 3D Printscreenwhich is able to capture the 3d Sketchup model and export it to some 3dxml format.

                        So if the OpenGL data can be "hooked" into, then does the possibility exist to use more OpenGL features not native to SU?

                        http://forums.sketchucation.com/viewtopic.php?f=10&t=11943&p=84502&hilit=+shaders#p84502

                        Hi

                        1 Reply Last reply Reply Quote 0
                        • thomthomT Offline
                          thomthom
                          last edited by

                          Isn't that what Adam B does with LightUp? Hook into the SU's OpenGL? All though, from C and not from Ruby.

                          Thomas Thomassen β€” SketchUp Monkey & Coding addict
                          List of my plugins and link to the CookieWare fund

                          1 Reply Last reply Reply Quote 0
                          • Q Offline
                            qpik
                            last edited by

                            These are the libraries included in Ruby Windows installer:
                            http://ruby-opengl.rubyforge.org/.

                            1 Reply Last reply Reply Quote 0
                            • Chris FullmerC Offline
                              Chris Fullmer
                              last edited by

                              But I'd still like to understand if you are getting this to interact with SketchUP somehow? Can you change what and how SU renders with this?

                              Chris

                              Lately you've been tan, suspicious for the winter.
                              All my Plugins I've written

                              1 Reply Last reply Reply Quote 0
                              • thomthomT Offline
                                thomthom
                                last edited by

                                Is this Windows and OSX compatible?

                                Thomas Thomassen β€” SketchUp Monkey & Coding addict
                                List of my plugins and link to the CookieWare fund

                                1 Reply Last reply Reply Quote 0
                                • Q Offline
                                  qpik
                                  last edited by

                                  Yes you can! πŸ˜„
                                  I've just found the first thing that changed the view of the model.
                                  I typed in the Ruby console glDisable(GL_DEPTH_TEST).
                                  To see result try turning the model around.
                                  Bear in mind that I'm just starting to learn OpenGL πŸ˜’ .

                                  ps. You need to run SU with the files from the zip above in Plugins, except the example.

                                  1 Reply Last reply Reply Quote 0
                                  • PixeroP Offline
                                    Pixero
                                    last edited by

                                    SU keep asking for glut32.dll. It's not in the zip you provided?

                                    1 Reply Last reply Reply Quote 0
                                    • Q Offline
                                      qpik
                                      last edited by

                                      @pixero said:

                                      SU keep asking for glut32.dll. It's not in the zip you provided?

                                      It didn't ask me. Maybe because I have it in my Ruby installation.

                                      1 Reply Last reply Reply Quote 0
                                      • Q Offline
                                        qpik
                                        last edited by

                                        I suppose so, try it on Mac.

                                        Below is not however, only Windows. This seems to freeze SketchUp OpenGL.

                                        FindWindow = Win32API.new("user32.dll", "FindWindow", ['P','P'], 'N')
                                        GetDC = Win32API.new("user32.dll", "GetDC", ['N'], 'N')
                                        GetCurrentContext = Win32API.new("opengl32.dll", "wglGetCurrentContext", ['V'], 'N')
                                        CreateContext = Win32API.new("opengl32.dll", "wglCreateContext", ['N'], 'N')
                                        MakeCurrent = Win32API.new("opengl32.dll", "wglMakeCurrent", ['N','N'], 'V')
                                        DeleteContext = Win32API.new("opengl32.dll", "wglDeleteContext", ['N'], 'V')
                                        
                                        
                                        hwnd = FindWindow.call(0, "Untitled - SketchUp")
                                        hdc = GetDC.call(hwnd)
                                        hglrc = GetCurrentContext.call()
                                        DeleteContext.call(hglrc)
                                        

                                        I wonder if this is good direction?

                                        1 Reply Last reply Reply Quote 0
                                        • PixeroP Offline
                                          Pixero
                                          last edited by

                                          So where can I get a Ruby install that has it?

                                          1 Reply Last reply Reply Quote 0
                                          • Q Offline
                                            qpik
                                            last edited by

                                            One-click windows installer has it. Here: http://rubyinstaller.org/

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 2 / 2
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement