plattysoft / ArToolKitJpctBaseLib

Other
20 stars 13 forks source link

Understanding of the project #14

Closed PelARuser closed 7 years ago

PelARuser commented 7 years ago

Hi! Thanks for this project, I was searching for this exact thing. Can someone help me better understand how it works though?

I was trying to create an app for NFT tracking. I saw in "Other notes" that I can use the ARToolKitJpctBaseLib exactly in the same way as ArBase. However, as the NftWitModels example is already created, can I just change some specific parts in that and use it directly? Furthermore, can you provide us with a guide as to how we can use our own images and 3D-models in this app? (At this moment, the image to be seen by the phone is "moon_ground", the texture is "astnt1_1" and the model is "astronaut1.3ds", am I right?)

Thanks in advance!

plattysoft commented 7 years ago

I should update the wiki one of these days :)

If you want to use a different NFT image you need to create the tracking files using the command line tools from ARToolKit.

You are right about the model and textures. The loading of models and textures is specific to jPCT-AE, but essentially any 3D model exported as 3ds should work and any image should work as a plain texture. To generate mapped textures for 3D objects you need to make them with a 3D creation tool such as blender, 3D Studio Max or Maya.

PelARuser commented 7 years ago

Thank you for your answer! :)

That's what I'm doing at the time, preparing my 3D models and my textures. So, once I have them ready, all I have to do in oder to load them is to save them in the same folder where the current ones are and change the names used in the code?

plattysoft commented 7 years ago

yes, that would do, you can also configure a more complex scene if you want to when loading the objects and adding them to the world, but then you are getting into jPCT-AE specifics.

PelARuser commented 7 years ago

Funny, I was sure I had answered to your last message. Anyway, thanks again for the answer! I think we had a little misunderstanding though... I said "the image to be seen by the phone is moon_ground" and you aggreed, but looking again, I now think that NASA is actually the image that has to be seen... Is that right? (I have some more questions, but it's probably better to open a new issue, more relative...)

plattysoft commented 7 years ago

I think we may have a misunderstanding of what "shown" means.

NASA logo is the marker, is what is used for tracking. It needs to be "seen" by the app to be augmented.

moon_ground is the image that is displayed on top of the marker, therefore the one that is shown on the screen.

PelARuser commented 7 years ago

Oh, ok, now I have understood it better! So, assuming I want just a model (model1.3ds) with its 2 texture-files (text1, text2) to be appeared when my image (Track_image) is tracked, and not another image similar to "moon_ground" my code has to be something like this?

protected void populateTrackableObjects(List<TrackableObject3d> list) {

        TrackableObject3d tckobj = new TrackableObject3d("nft;Data/Track_image");

        Texture texture = new Texture(getResources().getDrawable(R.drawable.text1));
        TextureManager.getInstance().addTexture("text1", texture);
        texture = new Texture(getResources().getDrawable(R.drawable.text2));
        TextureManager.getInstance().addTexture("text2", texture);

        try {
            Object3D [] model = Loader.load3DS(getAssets().open("model1.3ds"), 5);
            model[0].setOrigin(new SimpleVector(280, 200, 270));
            model[0].setTexture("text1");
            model[0].setTexture("text2");
            tckobj.addChild(model[0]);

        } catch (IOException e) {
            e.printStackTrace();
        }

        list.add(tckobj);
    }

Sorry if I ask too many things but I was working with nftbook to the moment and the procedure to change the models, textures and images is pretty different there, so I'm totally conused!

plattysoft commented 7 years ago

I'm not sure jPCT-AE supports two textures to one object.

This library is just a connector between the two projects.

To understand better ARToolkit, you can check the official docs: https://archive.artoolkit.org/documentation/

To undertand jPCT-AE or for any questions about the features, you can go to the official support forums or the wiki: http://www.jpct.net/wiki/index.php?title=Main_Page

PelARuser commented 7 years ago

Ok, thanks again for your answers! :)