Git Product home page Git Product logo

harfang-go's Introduction

HARFANG® for Golang

harfang-go release (latest SemVer) Go Doc Go Report Card

3D real time visualization framework

Harfang is a 3D real time visualization framework for the industry, the education and for scientists. It grants developpers the ability to create applications ranging from data visualization to games.

See https://www.harfang3d.com/license for licensing terms.

Installation steps for Windows

  1. Install the GO Language for Windows
  2. Install MSYS 2
  3. Open MSYS 2 bash and execute this command :
pacman -S mingw-w64-x86_64-gcc
  1. Add the GCC binaries to your Windows PATH by executing these two lines in your cmd. (This should be the correct path if you left everything by default during the MSYS 2 install)
setx PATH "%PATH%;C:\msys64\mingw64\bin"

refreshenv
  1. Download the Harfang Go package :
go get github.com/harfang3d/harfang-go/v3
  1. Run any harfang program :
go run example_harfang_app.go

Test the Go tutorials

  1. Download the tutorials https://github.com/harfang3d/tutorials-hg2

and unzip them to your computer (eg. d:/tutorials-hg2).

  1. To compile the tutorial resources, download assetc for your platform: https://dev.harfang3d.com/releases/

  2. Drag and drop the tutorial resources folder on the `assetc

executable -OR- execute assetc passing it the path to the tutorial resources folder (eg. assetc d:/tutorials-hg2/resources).

image

After the compilation process finishes, you should see a resources_compiled folder next to the resources folder. You can now

execute the tutorials from the folder you unzipped them to.

tutorials-hg2>go run draw_lines.go

Alternatively you can open the tutorial folder and run the provided debug targets using Visual Studio Code

Screenshots

The following screenshots were captured on a 2070RTX in 1080P running at

60FPS, GI is performed using screen space raytracing and does not require RTX capable hardware.

Cyber City (CyberPunk City, CyberPunk Girl and Robot R32 by art-equilibrium, ILranch and ZeroArt3d)

image

image

Sun Temple (Sun Temple, courtesy of the Open Research Content Archive)

image

image

Cafe Exterior (Bistro, courtesy of the Open Research Content Archive)

image

image

Sponza Atrium (Sponza Atrium GLTF, courtesy of Crytek/Themaister)

image

image

Features

Scene API

  • Node & component based
  • Performance oriented

Rendering pipeline

  • Low-spec PBR rendering pipeline
  • High-spec 'AAA' rendering pipeline (screen space GI & reflection)
  • Support of user pipeline shaders

VR API

  • VR support via OpenVR/SteamVR with Eye tracking
  • Compatible with the HTC Vive/Vive Pro, Valve Index, Lenovo Explorer, Oculus Rift S

Physics API

  • Rigid bodies, collisions, mechanical constraints
  • Ray casting
  • Fast & accurate

Audio API

  • Play/stream WAV/OGG formats
  • 3D audio spatialization

More information on https://www.harfang3d.com/

harfang-go's People

Contributors

astrofra avatar disketflu avatar harfang3dadmin avatar kipixelle avatar scorpheus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

harfang-go's Issues

How to build examples correctly?

I'm interested fiddling around with this package, but upon building I keep getting Lua binding errors.

/usr/bin/ld: ../../../pkg/mod/github.com/harfang3d/harfang-go/[email protected]/linux/libharfang.a(bind_Lua.cpp.o): in function `__index_ForwardPipelineLights_instance(lua_State*)':
bind_Lua.cpp:(.text+0xc96f9): undefined reference to `lua_isstring'
/usr/bin/ld: bind_Lua.cpp:(.text+0xc9738): undefined reference to `lua_tolstring'
/usr/bin/ld: bind_Lua.cpp:(.text+0xc9790): undefined reference to `lua_settop'
/usr/bin/ld: bind_Lua.cpp:(.text+0xc9882): undefined reference to `lua_pushcclosure'
.... (endless more)

I have liblua5.3-dev installed on my machine, and tried passing flags to gc with no avail.
-gcflags '-I/usr/include/lua5.3 -L/usr/lib/x86_64-linux-gnu/liblua5.3.a'

Any steps that I am missing?

Greetings and thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.